오류, 버그, 질문 - 페이지 2063 1...205620572058205920602061206220632064206520662067206820692070...3184 새 코멘트 fxsaber 2017.11.05 21:54 #20621 투명 채널이 있는 두 개의 bmp 개체가 있습니다. 서로 겹쳐지면 몇 가지 단위 색상이 나타납니다. 각 개체의 중첩 픽셀의 단위 색상을 알고 있다면 이러한 값을 직접 계산하는 방법은 무엇입니까? Andrey Barinov 2017.11.06 06:08 #20622 fxsaber : 투명 채널이 있는 두 개의 bmp 개체가 있습니다. 서로 겹쳐지면 몇 가지 단위 색상이 나타납니다. 각 개체의 중첩 픽셀의 단위 색상을 알고 있다면 이러한 값을 직접 계산하는 방법은 무엇입니까? static uchar GetA( const uint fromcolor){ return ( uchar ((fromcolor)>> 24 ));} static uchar GetR( const uint fromcolor){ return ( uchar ((fromcolor)>> 16 ));} static uchar GetG( const uint fromcolor){ return ( uchar ((fromcolor)>> 8 ));} static uchar GetB( const uint fromcolor){ return ( uchar (fromcolor));} static uint ARGBToColor( const uchar a, const uchar r, const uchar g, const uchar b){ return ((a<< 24 )|(r<< 16 )|(g<< 8 )|(b));} static uint cColor::Mix( const uint bottom, const uint top) { //=============== // if top color is not transparent => no mixing required //=============== if (cColor::GetA(top)== UCHAR_MAX ) return (top); //=============== //=============== static uint bottomprev= 0 ; static uint topprev= 0 ; static uint resultprev= 0 ; //=============== //=============== if (bottomprev==bottom && topprev==top) return (resultprev); //=============== //=============== bottomprev=bottom; topprev=top; //=============== //=============== // Get Params of Colors //=============== double topA=( double )cColor::GetA(top); double bottomA=( double )cColor::GetA(bottom); double topR=( double )cColor::GetR(top); double bottomR=( double )cColor::GetR(bottom); double topG=( double )cColor::GetG(top); double bottomG=( double )cColor::GetG(bottom); double topB=( double )cColor::GetB(top); double bottomB=( double )cColor::GetB(bottom); //=============== //=============== // Blend components //=============== uchar newA= uchar (topA+(bottomA*( 255.0 -topA)/ 255.0 )); uchar newR= uchar ((topR*topA/ 255.0 )+(bottomR*bottomA *( 255.0 -topA)/( 255.0 * 255.0 ))); uchar newG= uchar ((topG*topA/ 255.0 )+(bottomG*bottomA *( 255.0 -topA)/( 255.0 * 255.0 ))); uchar newB= uchar ((topB*topA/ 255.0 )+(bottomB*bottomA *( 255.0 -topA)/( 255.0 * 255.0 ))); //=============== //=============== resultprev=cColor::ARGBToColor(newA,newR,newG,newB); //=============== //=============== // New Color //=============== return (resultprev); //=============== } fxsaber 2017.11.06 06:15 #20623 Andrey Barinov : 고맙습니다! 질문 하나 더. 예를 들어 5개의 물체가 동시에 서로 겹쳐진 경우 쌍(위/아래)을 아래에서 위로 또는 위에서 아래로 만들어야 합니까? Andrey Barinov 2017.11.06 06:16 #20624 fxsaber : 고맙습니다! 한 번에 하나의 캔버스에 모든 (bmp) 개체를 그리는 것이 더 낫습니다. 장기적으로는 이것이 더 간단한 방법입니다. fxsaber 2017.11.06 06:19 #20625 Andrey Barinov : 한 번에 하나의 캔버스에 모든 (bmp) 개체를 그리는 것이 더 낫습니다. 장기적으로는 이것이 더 간단한 방법입니다. 이런 이유로 묻습니다. 질문 위에는 또 다른 질문이 있습니다. Andrey Barinov 2017.11.06 06:22 #20626 fxsaber : 고맙습니다! 질문 하나 더. 예를 들어 5개의 물체가 동시에 서로 겹쳐진 경우 쌍(위/아래)을 아래에서 위로 또는 위에서 아래로 만들어야 합니까? 나는 5개의 객체 중 어떤 픽셀이 교차할지 즉시 알 수 없다는 것을 이해하기 때문에 (zorder 유형의) 순서에 따라 아래에서 위로 레이어를 그립니다. 실제 캔버스에 있는 것처럼. 섞고 나면 이렇게 생겼어요 fxsaber 2017.11.06 06:28 #20627 Andrey Barinov : 5개의 객체 중 어떤 픽셀이 교차할지 즉시 알 수 없기 때문에 아래에서 위로 순서(유형 zorder)에 따라 레이어를 그립니다. 실제 캔버스에 있는 것처럼. 섞고 나면 이렇게 생겼어요 괜찮은! 수정된 CCanvas 또는 자체 솔루션을 사용하고 있습니까? 장기적으로 어떤 접근 방식이 더 수익성이 있습니까? Andrey Barinov 2017.11.06 06:33 #20628 fxsaber : 괜찮은! 수정된 CCanvas 또는 자체 솔루션을 사용하고 있습니까? 장기적으로 어떤 접근 방식이 더 수익성이 있습니까? 직접 작성해야 했지만 표준 라이브러리 (기본값 그리기, 평활화 등을 위한 알고리즘)에서 상당한 양의 코드를 차용했습니다. 표준 라이브러리 주위에 개념을 래핑하는 것보다 그래픽 작업 개념에 코드 조각을 집어넣는 것이 더 쉬운 것으로 나타났습니다. "라이브"라면 표준 라이브러리를 사용해도 상관없지만 지금까지는 GUI에 맞게 조정되지 않았습니다. fxsaber 2017.11.06 06:38 #20629 Andrey Barinov : 직접 작성해야 했지만 표준 라이브러리 (기본값 그리기, 평활화 등을 위한 알고리즘)에서 상당한 양의 코드를 차용했습니다. 표준 라이브러리 주위에 개념을 래핑하는 것보다 그래픽 작업 개념에 코드 조각을 집어넣는 것이 더 쉬운 것으로 나타났습니다. "라이브"라면 표준 라이브러리를 사용해도 상관없지만 지금까지는 GUI에 맞게 조정되지 않았습니다. 지금 지우세요. 감사합니다. fxsaber 2017.11.06 08:42 #20630 언어 버그 #include <Expert\ExpertSignal.mqh> void OnStart () { CIndicator* a = NULL ; CExpertSignal b; b.InitIndicators(a); // 'InitIndicators' - no one of the overloads can be applied to the function call } 1...205620572058205920602061206220632064206520662067206820692070...3184 새 코멘트
투명 채널이 있는 두 개의 bmp 개체가 있습니다. 서로 겹쳐지면 몇 가지 단위 색상이 나타납니다. 각 개체의 중첩 픽셀의 단위 색상을 알고 있다면 이러한 값을 직접 계산하는 방법은 무엇입니까?
고맙습니다! 질문 하나 더. 예를 들어 5개의 물체가 동시에 서로 겹쳐진 경우 쌍(위/아래)을 아래에서 위로 또는 위에서 아래로 만들어야 합니까?
고맙습니다!
한 번에 하나의 캔버스에 모든 (bmp) 개체를 그리는 것이 더 낫습니다. 장기적으로는 이것이 더 간단한 방법입니다.
한 번에 하나의 캔버스에 모든 (bmp) 개체를 그리는 것이 더 낫습니다. 장기적으로는 이것이 더 간단한 방법입니다.
이런 이유로 묻습니다. 질문 위에는 또 다른 질문이 있습니다.
고맙습니다! 질문 하나 더. 예를 들어 5개의 물체가 동시에 서로 겹쳐진 경우 쌍(위/아래)을 아래에서 위로 또는 위에서 아래로 만들어야 합니까?
나는 5개의 객체 중 어떤 픽셀이 교차할지 즉시 알 수 없다는 것을 이해하기 때문에 (zorder 유형의) 순서에 따라 아래에서 위로 레이어를 그립니다. 실제 캔버스에 있는 것처럼.
섞고 나면 이렇게 생겼어요
5개의 객체 중 어떤 픽셀이 교차할지 즉시 알 수 없기 때문에 아래에서 위로 순서(유형 zorder)에 따라 레이어를 그립니다. 실제 캔버스에 있는 것처럼.
섞고 나면 이렇게 생겼어요
괜찮은! 수정된 CCanvas 또는 자체 솔루션을 사용하고 있습니까? 장기적으로 어떤 접근 방식이 더 수익성이 있습니까?
괜찮은! 수정된 CCanvas 또는 자체 솔루션을 사용하고 있습니까? 장기적으로 어떤 접근 방식이 더 수익성이 있습니까?
직접 작성해야 했지만 표준 라이브러리 (기본값 그리기, 평활화 등을 위한 알고리즘)에서 상당한 양의 코드를 차용했습니다. 표준 라이브러리 주위에 개념을 래핑하는 것보다 그래픽 작업 개념에 코드 조각을 집어넣는 것이 더 쉬운 것으로 나타났습니다.
"라이브"라면 표준 라이브러리를 사용해도 상관없지만 지금까지는 GUI에 맞게 조정되지 않았습니다.
직접 작성해야 했지만 표준 라이브러리 (기본값 그리기, 평활화 등을 위한 알고리즘)에서 상당한 양의 코드를 차용했습니다. 표준 라이브러리 주위에 개념을 래핑하는 것보다 그래픽 작업 개념에 코드 조각을 집어넣는 것이 더 쉬운 것으로 나타났습니다.
"라이브"라면 표준 라이브러리를 사용해도 상관없지만 지금까지는 GUI에 맞게 조정되지 않았습니다.
지금 지우세요. 감사합니다.