색상을 음영으로 분해하는 기능. - 페이지 6

 

색상 분해 알고리즘에 대한 대화로 돌아갑니다. 주제에서 벗어나서 죄송합니다.

알고리즘을 적용하는 방법과 위치에 대한 질문이 있는 경우 이전 페이지에서 설명을 찾을 수 있습니다.

 
Vladislav Andruschenko :

내 10센트를 넣어도 될까요? GUI 및 일반적으로 여기에서 논의되는 모든 것에 대해 설명합니다.

모든 사람에게는 꿈, 취미, 열정이 있습니다.

누군가는 낚시를 하고 누군가는 사진을 사랑하고 누군가는 여행을 좋아하고 누군가는 비행기 모형을 만들고....


마찬가지로 여기:

MetaTrader 개발자는 MQL5 언어를 대중화하기 위한 좋은 조치를 취했습니다!

템플릿이나 구조가 부족하다는 글은 모두 사용하시는 분들을 위한 것입니다.


예를 들어 Anatoly와 같은 GUI 라이브러리를 만드는 것이 그의 취미입니다. 그는 그것을 했고 모든 사람에게 그것을 보여주었다.

저는 보고 놀랐습니다... 그리고 그가 그의 라이브러리를 "일어나기" 시작한 것의 시작 부분에서도 - 저는 오랫동안 "GUI를 줄이겠다"는 계획을 가지고 있었지만 겁먹었습니다.

그리고 그는 더 이상 이것을 매우 열심히 한 사람을 "따라잡기" 시작하지 않았습니다.

그는 이 라이브러리를 만들었고 많은 사람들이 그것을 사용한다고 확신합니다.

그에게 그것은 취미이자 가장 좋아하는 것이었습니다. 그는 이 프로젝트에만 종사했고(아마도) 질려버렸습니다. 그리고 그는 지금 아프다.


Peter는 또한 자신의 열정, 취미가 있습니다. Peter가 GUI를 만듭니다.

그리고 모두가 스스로 주장할 것입니다.

누군가는 필요하고 누군가는 필요하지 않습니다.


왜 귀찮게 뭔가를 증명합니까? 설득? 도움이 되려고 하시나요? - BE IT, 시도하지 마십시오.


Expert Advisors의 GUI가 필요한 사람도 있고 필요하지 않은 사람도 있습니다.

누군가는 MQL로 게임을 그리고 누군가는 EA에서 매개변수가 전혀 필요하지 않습니다.

여기 모든 사람이 너무 다르기 때문에 누군가에게 무언가를 확신시키는 것은 의미가 없습니다.

모든 사람이 자신의 관점을 갖고 자신의 비즈니스를 생각하게 하십시오. 그러면 갈등이 없을 것입니다.


우리 모두는 어딘가에서 시작했습니다. 우리는 서로에게서 뭔가를 배웠습니다. 왜 전에는 모두가 더 친절했습니까?

블라디슬라프. 나는 사람들과의 차이점을 이해하려는 열망에 의해 움직입니다. 왜 나와 그들은 그렇게 다른 견해를 가지고 있습니까? 그게 다야.

어떤 사람들은 그것을 자신의 제품에 대한 광고로, 다른 사람들은 집착으로, 다른 사람들은 고정된 아이디어 등으로 인식합니다.

그러나 사실 나는 다른 사람과 나를 이해하고 싶기 때문에 주장하고 증명한다.

 
Реter Konow :

블라디슬라프. 나는 사람들과의 차이점을 이해하려는 열망에 의해 움직입니다. 왜 나와 그들은 그렇게 다른 견해를 가지고 있습니까? 그게 다야.

어떤 사람들은 그것을 자신의 제품에 대한 광고로, 다른 사람들은 집착으로, 다른 사람들은 고정된 아이디어 등으로 인식합니다.

그러나 사실 나는 다른 사람과 나를 이해하고 싶기 때문에 주장하고 증명한다.

OOP와 절차적 프로그래밍이 있습니다.

OOP가 필요한 경우 OOP가 사용됩니다.

PP가 필요한 곳에서는 절차적 프로그래밍의 간단한 유형을 사용합니다.

얼마나 많은 사람들, 너무 많은 의견.

IT 회사에 가서 소프트웨어로 프로그래밍한다고 말하면 그들이 당신을 보낼 것이 분명합니다.

여기에서 원하는 작업을 수행합니다.


GUI에서 튜토리얼 기사를 작성하기 시작하자마자 "자신의" 팬이 생길 것입니다. 트롤의 군대도 있을 것이지만 이것도 필요합니다 :-)

어느 쪽이 더 나은지 서로 논쟁하게 하십시오. OOP의 GUI 또는 PP의 GUI.


그냥 나를 믿어.

당신이 좋아하는 일을 하고 그것을 사용할 사람들이 있을 것입니다.
논쟁하지 말고 갈등을 일으키지 마십시오. 많은 에너지가 이 작업에 사용됩니다. 모든 에너지를 프로젝트에 사용하는 것이 좋습니다!

 
Vladislav Andruschenko :

OOP와 절차적 프로그래밍이 있습니다.

OOP가 필요한 경우 OOP가 사용됩니다.

PP가 필요한 곳에서는 절차적 프로그래밍의 간단한 유형을 사용합니다.

얼마나 많은 사람들, 너무 많은 의견.

IT 회사에 가서 소프트웨어로 프로그래밍한다고 말하면 그들이 당신을 보낼 것이 분명합니다.

여기에서 원하는 작업을 수행합니다.


GUI에서 튜토리얼 기사를 작성하기 시작하자마자 "자신의" 팬이 생길 것입니다. 트롤 군대도 있지만 이것도 필요합니다 :-)

어느 쪽이 더 나은지 서로 논쟁하게 하십시오. OOP의 GUI 또는 PP의 GUI.


그냥 나를 믿어.

당신이 좋아하는 일을 하고 그것을 사용할 사람들이 있을 것입니다.
논쟁하지 말고 갈등을 일으키지 마십시오. 많은 에너지가 이 작업에 사용됩니다. 모든 에너지를 프로젝트에 사용하는 것이 좋습니다!

좋은. 동의합니다.

내 알고리즘에 대해 어떻게 생각하세요?

얼마나 편리하고 유용합니까?

 
Реter Konow :

좋은. 동의합니다.

내 알고리즘에 대해 어떻게 생각하세요?

얼마나 편리하고 유용합니까?


나는 "쉽고 단순한"의 지지자로서 당신의 버전을 더 좋아합니다.

그러나 나는 많은 사람들과 마찬가지로 OOP가 필수라는 사실을 고수합니다.

내 작업의 특성으로 인해, 예를 들어 "고객"은 러시아어 변수 이름을 사용하더라도 명확한 코드가 필요하다는 것을 알고 있습니다. 러시아 고객은 일반적으로 이것으로 인해 터벅터벅 걸어갑니다.

그리고 그들은 프로그램을 "주문"하기 때문에 아무 것도 이해하지 못하고 코드가 더 쉽게 필요하다는 것을 의미합니다. 러시아어 변수 이름으로 .......


그러나 나는 주문형 프로그래밍이 당신을 바닥으로 끌어당긴다는 것을 오랫동안 이해해 왔습니다! 자기개발이 없습니다. 이제 코드를 표시하지 않고 프로젝트를 수행하는 것이 더 흥미로워집니다. 어디에서 이미 OOP를 사용할 수 있습니까?

일반적으로 사용자는 요소가 있고 차트에서 직접 제어할 수 있는 간단한 생성자가 필요합니다.


다시 한번. 각 솔루션에는 자체 팬 군대가 있습니다.

그냥 하고 싶은 대로 하세요...


이 모든 것은 경험에서 나온 것이므로 올바른 척하지 않고 내가 표현한 말을 ....

나는 "GENERAL DISCUSSION"에서 모든 가지를 실질적으로 읽었습니다. (모두 이 섹션 아래로 스크롤하기에는 너무 게으르기 때문입니다 :-)), 저는 많은 것에 놀랐습니다.

때때로 당신은 "당신의 12개의 코펙"을 넣고 싶지만 누군가에게 무언가를 증명하는 것은 에너지를 필요로 합니다.

같은 오페라에서 - "시장에 필요한 것"에 대한 토론 - 예, 모두가 자신의 것이 필요합니다.

누군가는 하나의 RISK 매개변수를 가진 완전 자동 기계이고 누군가는 100,500개의 매개변수가 필요합니다!

하나의 프로젝트를 가지고 얼굴이 파랗고 완전히 지칠 때까지 개발하고 나서야 다음 프로젝트를 수행하는 것이 좋습니다.

테스터에서 프로그램 이름과 사진을 변경하여 아무도 필요하지 않은 수백 수천 개의 프로젝트를 생성하는 방법 ....


임호

모두에게 안부!!!

 

피드백을 주셔서 감사합니다. 네가 좋다 니 기쁘다. 이 알고리즘을 개발에 사용하면 기쁠 것입니다.

이것은 주제에서 조금 벗어난 것입니다. 이건 내 잘못이야 대화는 알고리즘에 관한 것이었습니다. 나머지 주제는 무시할 수 있습니다.
 
Vladislav Andruschenko :


나는 "쉽고 단순한"의 지지자로서 당신의 버전을 더 좋아합니다.

그러나 나는 많은 사람들과 마찬가지로 OOP가 필수라는 사실을 고수합니다.

내 작업의 특성으로 인해, 예를 들어 "고객"은 러시아어 변수 이름을 사용하더라도 명확한 코드가 필요하다는 것을 알고 있습니다. 러시아 고객은 일반적으로 이것에 끌 립니다.

그리고 그들은 프로그램을 "주문"하기 때문에 아무 것도 이해하지 못하고 더 쉬운 코드가 필요하다는 것을 의미합니다. 러시아어 변수 이름으로.......

...

내 연습에서, 이 포럼의 3명을 제외하고는 아무도 끌지 않았습니다.

예를 들어, 나는 그러한 코드에서 3 줄 이상 읽지 않고 삭제합니다.

 
Vitaly Muzichenko :

내 연습에서, 이 포럼에 3명을 제외하고는 아무도 끌지 않았습니다.

예를 들어, 나는 그러한 코드에서 3 줄 이상 읽지 않고 삭제합니다.

당신은 영어를 할 줄 아는 사람으로서 내 결정을 무시해도 됩니다. 영어 단어가 거의 없습니다.

그건 그렇고, 당신은 영어 코드에 너무 익숙하기 때문에 Nikolai Semko가 제안한 코드를 구문 분석하는 것을 도와주세요.

 #include <Canvas\iCanvas.mqh> //https://www.mql5.com/ru/code/22164

union rgb { uint clr; uchar c[ 4 ];};

void OnStart ()
  {
   rgb c,cc;
   double d= 5 ;
   while (! IsStopped ())
     {
      c.c[ 2 ]= uchar ( 127.5 *( 1 + sin (d* 1.2 ))+ 0.4999 ); c.c[ 1 ]= uchar ( 127.5 *( 1 + sin (d* 1.9 ))+ 0.4999 ); c.c[ 0 ]= uchar ( 127.5 *( 1 + sin (d* 2.8 ))+ 0.4999 );   // генерируем новый цвет
      cc.clr=c.clr;
       double k0,k1,k2;
       if (c.c[ 2 ]>=c.c[ 1 ] && c.c[ 2 ]>=c.c[ 0 ]) {k2= 1 ; if (c.c[ 2 ]== 0 ) {k1= 1 ; k0= 1 ;} else {k1=( double )c.c[ 1 ]/c.c[ 2 ]; k0=( double )c.c[ 0 ]/c.c[ 2 ];}} // если Red - максимальный цвет
       else if (c.c[ 1 ]>=c.c[ 2 ] && c.c[ 1 ]>=c.c[ 0 ]) {k1= 1 ; k2=( double )c.c[ 2 ]/c.c[ 1 ]; k0=( double )c.c[ 0 ]/c.c[ 1 ];} // если Green - максимальный цвет
       else {k0= 1 ; k2=( double )c.c[ 2 ]/c.c[ 0 ]; k1=( double )c.c[ 1 ]/c.c[ 0 ];} // если Blue - максимальный цвет
       for ( int y= 0 ; y<W.Height; y++)
        {
         double k= 255.0 *( double )y/(W.Height- 1 );
         c.c[ 2 ]= uchar (k2*k+ 0.4999 );
         c.c[ 1 ]= uchar (k1*k+ 0.4999 );
         c.c[ 0 ]= uchar (k0*k+ 0.4999 );
         Canvas.LineHorizontal( 0 ,W.Width- 1 ,y, ColorToARGB (c.clr, 240 ));
        }
      Canvas.FillRectangle(W.Width/ 2 - 80 ,W.Height/ 2 - 50 ,W.Width/ 2 + 80 ,W.Height/ 2 + 50 , ColorToARGB (cc.clr, 240 ));
      Canvas.CurentFont( "Tahoma" , 20 , 22 , ColorToARGB (~cc.clr)); // 20 -  размер шрифта, 22 - межстрочный интервал
      Canvas.TextPosition(W.Width/ 2 - 70 ,W.Height/ 2 - 40 );
      Canvas.Comm( "Текущий цвет:" );
      Canvas.Comm( "R = " + string (cc.c[ 2 ]));
      Canvas.Comm( "G = " + string (cc.c[ 1 ]));
      Canvas.Comm( "B = " + string (cc.c[ 0 ]));
      ChartChanged(); // на всякий случай контролируем изменение размеров окна, т.к. это скрипт (в индикаторах и экспертах это происходит автоматически)
      Canvas.Update();
      d+= 0.01 ;
       Sleep ( 30 );
     }
  }

솔직히 말해서, 나는 그것이 어떻게 작동하는지 이해하지 못합니다. 짧은 영어 음절이 많이 있습니다. 당신이 좋아하는 것.

 
Vitaly Muzichenko :

내 연습에서, 이 포럼에 3명을 제외하고는 아무도 끌지 않았습니다.

예를 들어, 나는 그러한 코드에서 3 줄 이상 읽지 않고 삭제합니다.

나는 당신과 완전히 동의합니다.

변수는 국제 언어로 되어 있어야 합니다.


그러나 나는 "고객"에 대해 이야기하고 있습니다.

변수가 러시아어로 표시되기를 원하는 사람들을 만났습니다.

그리고 어떻게 논쟁할 수 있습니까? 절대 안돼. 고객은 "필요"

따라서 나는 이미 1 년 동안 명령을 거부하여 아무에게도 증명하지 않았습니다.


예를 들어 영어 이름으로 주문하면 아무도 알려주지 않습니다.

그리고 당신은 러시아어로 고객 변수를 만들려고 노력합니다. 그는 그것을 좋아할 것입니다. 그리고 그는 영어를 모르기 때문에 자신을 끌 것입니다.

 
Реter Konow :

당신은 영어를 할 줄 아는 사람으로서 내 결정을 무시해도 됩니다. 영어 단어가 거의 없습니다.

그건 그렇고, 당신은 영어 코드에 너무 익숙하기 때문에 Nikolai Semko가 제안한 코드를 구문 분석하는 것을 도와주세요.

솔직히 말해서, 나는 그것이 어떻게 작동하는지 이해하지 못합니다. 짧은 영어 음절이 많이 있습니다. 당신이 좋아하는 것.


글쎄, 영어로 된 이름은 이유가 있습니다.

러시아어 이름이 코드를 죽일 때와 같은 또 다른 예를 들 수 있습니다.

키릴 자모가 없는 고객에게 코드를 넘겨주고 있습니다. 모두. .... 다 없어졌어..... :-)


잠시만 더.

예를 들어 GOOGLE 번역기는 영어를 모국어로 사용합니다. 그리고 이름을 영어로 쓰면 번역기의 도움을 받아 번역할 수 있습니다.

그렇지 않으면 문제가 발생합니다.

글쎄, 나는 단지 미래를 위해 말하는 것입니다.


그러나 일반적으로 차별이 없도록 모든 사람에게 초점을 맞출 필요가 있습니다. 러시아인 - 러시아어.

나머지는 더 친숙한 영어입니다.

여전히 스페인어 - 결국이 언어는 가장 인기있는 것으로 간주됩니다.