캔버스 멋지다! - 페이지 24 1...171819202122232425262728293031...93 새 코멘트 Nikolai Semko 2019.08.13 18:48 #231 Rafil Nurmukhametov : @Nikolai Semko 안녕하세요, 하나의 캔버스 레이어에서 텍스트 위에 겹쳐진 개체의 투명도를 만드는 것이 가능한가요? 그림이 보이나요? 두 번째 투명 원이 두 번째 레이어이므로 이 개체를 투명하게 만드는 것은 문제가 되지 않습니다. 그리고 한 가지 더 질문입니다. 캔버스의 레이어에 이미지를 삽입하는 방법이나 추가 레이어에 넣어야 하나요? 어떻게든 리소스를 통해 이해하지만 뭔가 잘 되지 않습니다. 코드 예제를 보여줄 수 있습니까? 투명도가 있는 캔버스(COLOR_FORMAT_ARGB_NORMALIZE)를 사용하는 경우 두 레이어 tr1 및 tr2의 투명도를 공식에 따라 혼합해야 합니다. double tr=tr1+tr2-tr1*tr2; // где tr, tr1, tr1 меняются от нуля (абсолютная прозрачность) до 1(абсолютная непрозрачность) 임의 색상 및 임의 투명도의 임의 원이 있는 예제 스크립트: #include <Canvas\iCanvas.mqh> //https://www.mql5.com/ru/code/22164 #define Num 100 //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart () { // инициализация случайных окружностей uint X[Num],Y[Num],sr[Num],clr[Num],Rmin[Num],Rmax[Num]; double sx[Num],sy[Num]; for ( int i= 0 ; i<Num; i++) { X[i]= rand ()% 3141 ; Y[i]= rand ()% 3141 ; sr[i]= rand ()% 3141 ; sx[i]= 0.3 + 0.7 *( double ) rand ()/ 32767.0 ; sy[i]= 0.3 + 0.7 *( double ) rand ()/ 32767.0 ; clr[i]=ARGB( rand ()% 256 , rand ()% 256 , rand ()% 256 , rand ()% 256 ); int r2= 5 + rand ()% 100 ; int r1= 5 + rand ()% 100 ; Rmin[i]=( int ) fmin (r1,r2); Rmax[i]=( int ) fmax (r1,r2); } // формирование изображения из Num (= 100) полупрозрачных кругов double j= 0 ; while (! IsStopped ()) { Canvas.Erase(); Canvas.CurentFont( "Arial" , 30 ); Canvas.TextPosY= 100 ; Canvas.Comm( "Hello World!" ); for ( int i= 0 ; i<Num; i++) { Circle(W.Width/ 2 *( 1 + sin ((X[i]+sx[i]*j)* M_PI / 1000 )), W.Height/ 2 *( 1 + sin ((Y[i]+sy[i]*j)* M_PI / 1000 )), Rmin[i]+ double (Rmax[i]-Rmin[i])/ 2 *( 1.0 + cos ((j+sr[i])* M_PI / 1000 )),clr[i]); } Canvas.Update(); j+= 0.3 ; Sleep ( 30 ); } } //+------------------------------------------------------------------+ void Circle( double x, double y, double r, uint clr) { double R2=r*r; for ( int X=Round(x-r); X <=Round(x+r);X++) for ( int Y=Round(y-r); Y<=Round(y+r);Y++) if (((x-X)*(x-X)+(y-Y)*(y-Y))<=R2) Canvas.PixelSet(X,Y,MixColor(clr,Canvas.PixelGet(X,Y))); } //+------------------------------------------------------------------+ uint MixColor( uint clr, uint clrback) // смешиваем цвет и прозрачность clr c цветом и прозрачностью фона clrback { argb C,Bg; if (clrback== 0 ) return clr; C.clr=clr; if (C.c[ 3 ]== 255 ) return clr; Bg.clr=clrback; double tr=C.c[ 3 ]/ 255.0 ; double trb=Bg.c[ 3 ]/ 255.0 ; C.c[ 2 ]= uchar (Bg.c[ 2 ]+tr*(C.c[ 2 ]-Bg.c[ 2 ])); C.c[ 1 ]= uchar (Bg.c[ 1 ]+tr*(C.c[ 1 ]-Bg.c[ 1 ])); C.c[ 0 ]= uchar (Bg.c[ 0 ]+tr*(C.c[ 0 ]-Bg.c[ 0 ])); C.c[ 3 ]= uchar (( trb+tr-trb*tr )* 255.0 + 0.49999 ); return C.clr; } //+------------------------------------------------------------------+ 파일: TestLayerTransparency.mq5 6 kb Nikolai Semko 2019.08.13 18:59 #232 Rafil Nurmukhametov : @니콜라이 셈코 그리고 한 가지 더 질문입니다. 캔버스의 레이어에 이미지를 삽입하는 방법이나 추가 레이어에 넣어야 하나요? 어떻게든 리소스를 통해 이해하지만 뭔가 잘 되지 않습니다. 코드 예제를 보여줄 수 있습니까? 사진 작업은 여기에서 엿볼 수 있습니다. 결국 그림은 같은 점의 배열입니다. 이 예는 두 개의 bmp 파일의 리소스를 uint BMP1[], BMP2[] 배열로 구동한 다음 하나의 캔버스에서 이러한 배열로 작업하는 방법을 보여줍니다. Rafil Nurmukhametov 2019.08.14 03:15 #233 Nikolay에게 대단히 감사합니다. 마침내 알아냈습니다. Nikolai Semko 2019.08.14 11:31 #234 Rafil Nurmukhametov : Nikolay에게 대단히 감사합니다. 마침내 알아냈습니다. 별말씀을요. Nikolai Semko 2019.08.22 21:19 #235 동적 시간대를 사용한 첫 번째 실험. 역학에서 EURUSD 전체 역사 쌍 : . 프랙탈리티가 있습니다. Sergey Golubev 2019.08.22 22:28 #236 Nikolai Semko : 동적 시간대를 사용한 첫 번째 실험. 역학에서 EURUSD 전체 역사 쌍 : . 프랙탈리티가 있습니다. 나는 당신의 게시물을 영어로 보았습니다. 영어 코드베이스를 포함하여 영어 부분에 더 많은 것을 게시하십시오(귀하의 모든 것이 그곳에서 매우 유명합니다). 정보를 위해. Nikolai Semko 2019.08.22 22:42 #237 Sergey Golubev : 나는 당신의 게시물을 영어로 보았습니다. 영어 코드베이스를 포함하여 영어 부분에 더 많은 것을 게시하십시오(귀하의 모든 것이 그곳에서 매우 유명합니다). 정보를 위해. 고맙습니다. 시도 할 것이다. 사실, 포럼의 영어권 부분에서 내 게시물에 대한 반응이 거의 0에 가까웠던 것 같습니다. 항상 "조용히 자신과 함께 ..." Maxim Romanov 2019.08.23 05:34 #238 Nikolai Semko : 동적 시간대를 사용한 첫 번째 실험. 역학에서 EURUSD 전체 역사 쌍 : . 프랙탈리티가 있습니다. 멋진 완료! Реter Konow 2019.08.23 08:01 #239 감독자! Aleksey Vyazmikin 2019.08.23 08:19 #240 Nikolai Semko : 동적 시간대를 사용한 첫 번째 실험. 역학에서 EURUSD 전체 역사 쌍 : . 프랙탈리티가 있습니다. 매우 명확하고 흥미롭습니다. 티키는 상상할 수 있습니까? 1...171819202122232425262728293031...93 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
@Nikolai Semko 안녕하세요, 하나의 캔버스 레이어에서 텍스트 위에 겹쳐진 개체의 투명도를 만드는 것이 가능한가요? 그림이 보이나요? 두 번째 투명 원이 두 번째 레이어이므로 이 개체를 투명하게 만드는 것은 문제가 되지 않습니다.
그리고 한 가지 더 질문입니다. 캔버스의 레이어에 이미지를 삽입하는 방법이나 추가 레이어에 넣어야 하나요? 어떻게든 리소스를 통해 이해하지만 뭔가 잘 되지 않습니다. 코드 예제를 보여줄 수 있습니까?
투명도가 있는 캔버스(COLOR_FORMAT_ARGB_NORMALIZE)를 사용하는 경우 두 레이어 tr1 및 tr2의 투명도를 공식에 따라 혼합해야 합니다.
임의 색상 및 임의 투명도의 임의 원이 있는 예제 스크립트:
@니콜라이 셈코
그리고 한 가지 더 질문입니다. 캔버스의 레이어에 이미지를 삽입하는 방법이나 추가 레이어에 넣어야 하나요? 어떻게든 리소스를 통해 이해하지만 뭔가 잘 되지 않습니다. 코드 예제를 보여줄 수 있습니까?
사진 작업은 여기에서 엿볼 수 있습니다.
결국 그림은 같은 점의 배열입니다.
이 예는 두 개의 bmp 파일의 리소스를 uint BMP1[], BMP2[] 배열로 구동한 다음 하나의 캔버스에서 이러한 배열로 작업하는 방법을 보여줍니다.
Nikolay에게 대단히 감사합니다. 마침내 알아냈습니다.
별말씀을요.
동적 시간대를 사용한 첫 번째 실험.
역학에서 EURUSD 전체 역사 쌍 :
.
프랙탈리티가 있습니다.동적 시간대를 사용한 첫 번째 실험.
역학에서 EURUSD 전체 역사 쌍 :
.
프랙탈리티가 있습니다.영어 코드베이스를 포함하여 영어 부분에 더 많은 것을 게시하십시오(귀하의 모든 것이 그곳에서 매우 유명합니다).
정보를 위해.
나는 당신의 게시물을 영어로 보았습니다.
영어 코드베이스를 포함하여 영어 부분에 더 많은 것을 게시하십시오(귀하의 모든 것이 그곳에서 매우 유명합니다).
정보를 위해.
동적 시간대를 사용한 첫 번째 실험.
역학에서 EURUSD 전체 역사 쌍 :
.
프랙탈리티가 있습니다.동적 시간대를 사용한 첫 번째 실험.
역학에서 EURUSD 전체 역사 쌍 :
.
프랙탈리티가 있습니다.매우 명확하고 흥미롭습니다.
티키는 상상할 수 있습니까?