Canvas에서 크라우드소싱 프로젝트 만들기 - 페이지 20

 

이 공식을 비교하면 정말 다른 결과가 나옵니다. 하나는 속도를 비교했습니다.

왼쪽 절반은 서로 다른 색상의 3개 레이어로 구성되어 있고 투명도는 모든 곳에서 128입니다.색상은 터미널에서 혼합됩니다.

오른쪽 상단은 영어 위키에 따라 혼합된 하나의 레이어로 만들어집니다.

러시아 위키에 따르면 한 레이어의 오른쪽 하단.


화면에서 터미널과 영문 위키 비교 (터미널이 맨 위에 있음)


파일에 저장된 리소스별 수식 비교(상단 영어)


리소스를 생성하는 데 시간이 많이 걸리고 색상을 계산하고 배열을 최대 10번 채우는 것에 비해 OCL을 처리하는 것은 아마도 의미가 없을 것입니다.

추신: 나쁘지 않은 것 같습니다, 당신은 MT에서 포토샵을 사용할 수 있습니다 :)

파일:
script.mq5  4 kb
 
CCanvas 클래스를 이해하는 사람들은 거기에서 그라디언트를 만들 수 있습니까? 예를 들어 사각형을 버튼으로 바꾸려면? 나는 오래전부터 이것을 묻고 싶었다.
 
Реter Konow :
CCanvas 클래스를 이해하는 사람들은 거기에서 그라디언트를 만들 수 있습니까? 예를 들어 사각형을 버튼으로 바꾸려면? 나는 오래전부터 이것을 묻고 싶었다.
있다.
 
Artyom Trishkin :
있다.

캔버스를 사용하여 버튼을 그린 예가 있습니까? 나는 그들을 본 기억이 없습니다. 아주 멋진 버튼을 보았지만 원본 그림을 기반으로했지만 캔버스에 완전히 그려진 것을 보지 못했습니다 ...
 
Реter Konow :

kanavas를 사용하여 그린 버튼의 예가 있습니까? 나는 그들을 본 기억이 없습니다. 아주 멋진 버튼을 보았지만 원본 그림을 기반으로했지만 캔버스에 완전히 그려진 것을 보지 못했습니다 ...
Anatoly는 설명에서 그래프를 읽었습니다. 내 기억이 맞다면 도서관은 정보 요소에 관한 것입니다.
 
Artyom Trishkin :
Anatoly는 설명에서 그래프를 읽었습니다. 내 기억이 맞다면 도서관은 정보 요소에 관한 것입니다.

찾도록 하겠습니다...
 
설립하다. 툴팁 요소는 그라디언트를 사용합니다. 사실, 각 그라디언트 선을 고유 한 색상과 투명도로 설정할 수 있는지 이해하지 못했습니다. 여가 시간에 캔버스를 연구하는 것이 필요할 것입니다. 호기심이 많은...
 
Реter Konow :
CCanvas 클래스를 이해하는 사람들은 거기에서 그라디언트를 만들 수 있습니까? 예를 들어 사각형을 버튼으로 바꾸려면? 나는 오래전부터 이것을 묻고 싶었다.
이봐 피터!
그래디언트에는 문제가 없습니다.
다음은 모든 색상을 반복하고 동적으로 변화하는 그라데이션 색상 사각형을 그리는 스크립트의 간단한 시각적 예입니다.
작동시키려면 Canvas.mqh의 m_pixels[] 배열을 public으로 이동해야 합니다.
 public :
   uint               m_pixels[];               // array of pixels
 #include <Canvas\Canvas.mqh>
void OnStart ()
  {
   CCanvas Grad;

   color col;
   if (!Grad.CreateBitmapLabel( 0 , 0 , "Grad" , 100 , 100 , 256 , 256 , COLOR_FORMAT_XRGB_NOALPHA )) Print ( "Error creating canvas: " , GetLastError ());
   for ( int r= 0 ; r< 256 ; r++) // red
     {
       int j= 0 ;
       // заполняем цветной градиентный квадрат
       for ( int b= 0 ; b< 256 ; b++) // blue
         for ( int g= 0 ; g< 256 ; g++) // green
           {
            col=( color )(((r& 0x0000FF )<< 16 )|((g& 0x0000FF )<< 8 )|(b& 0x0000FF )); // формируем цвет RGB
            Grad.m_pixels[j]=col; // рисуем точку с текущим цветом
            j++;
           }
      Grad.Update();
       Sleep ( 20 );   // Подождем для плавности
     }
  }
파일:
Gradient.mq5  2 kb
 
Nikolai Semko :
이봐 피터!
그래디언트에는 문제가 없습니다.
다음은 모든 색상을 반복하고 그라데이션 색상 사각형을 그리는 스크립트의 간단한 시각적 예입니다.
작동시키려면 Canvas.mqh의 m_pixels[] 배열을 public으로 이동해야 합니다.


안녕 니콜라이!

예를 들어 주셔서 감사합니다. 그러나 나는 다른 것을 의미했습니다. 그는 자신의 생각을 어렴풋이 전했다. 나는 사각형을 버튼으로 바꾸는 사각형의 프레임을 의미했습니다. 이렇게 하려면 프레임 라인이 달라야 합니다. 예를 들어 위쪽과 왼쪽 라인은 밝고 아래쪽과 오른쪽 라인은 어둡습니다. - 버튼이 눌려져 있지 않으면 버튼이 눌린 것처럼 보입니다. 캔버스로 이 작업을 수행하는 방법을 알고 싶었습니다.

나는 경계선을 그라디언트로 명명했습니다. 틀린거 아닐까...

 
Реter Konow :

안녕 니콜라이!

예를 들어 주셔서 감사합니다. 그러나 나는 다른 것을 의미했습니다. 그는 자신의 생각을 어렴풋이 전했다. 나는 사각형을 버튼으로 바꾸는 사각형의 프레임을 의미했습니다. 이렇게 하려면 프레임 라인이 달라야 합니다. 예를 들어 위쪽과 왼쪽 라인은 밝고 아래쪽과 오른쪽 라인은 어둡습니다. - 버튼이 눌려져 있지 않으면 버튼이 눌린 것처럼 보입니다. 캔버스로 이 작업을 수행하는 방법을 알고 싶었습니다.

나는 경계선을 그라디언트로 명명했습니다. 틀린거 아닐까...


버튼 이미지는 기성품 bmp 이미지를 로드하거나 프로그램 드로잉을 통해 형성할 수 있습니다(여기에는 이미 많은 옵션이 있습니다). 그런 다음 단순히 OnChartEvent에서 마우스 이벤트를 처리하여 이미지를 변경합니다.