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

 
Реter Konow :

니콜라이, 유치원 같아요. "4배 더 빠르다"는 진술은 입증되지 않았기 때문에 유효하지 않습니다.


  1. MT5에서 내 솔루션 버전의 줄을 주석 처리하면 차이점을 알 수 있습니다.

어떤 이유에서인지 이 선은 전체 사각형의 그리기에 영향을 줍니다. 그러나 이것은 내 결함이 아닙니다. 확인하다.

나는 당신이 나타난 결함을 계속 이해합니다. 내 알고리즘 때문에 유효한지 알고 싶습니다.


그리고 불필요한 숫자 깜박임을 끕니다. 불필요한 것을 모두 제거하십시오. 초기 색상 하나의 그라데이션으로 간단한 사각형을 한 번 그려 보겠습니다. 추가 주름이 없습니다.

Peter, 나는 증명 코드를 제공한 후 "4배 더 빠르게"라고 썼습니다. 나는 다른 무엇이 필요한지 이해하지 못한다.

모든 연결 끊김 - 결함이 계속됩니다. 이 바디 키트를 만들기 전에도 이 결함을 보았습니다. 내 그라디언트를 삽입하면 이 글리치는 텍스트 키트에서도 발생하지 않습니다. 이것은 이 포스트 에 첨부된 코드에서 이미 증명되었습니다.

 
Yury Kulikov :

나는 "고발"에 합류 할 것입니다, 나는 그것을 참을 수 없었습니다 :)

프로그래밍하지 않는 방법의 좋은 예입니다. 전체 GUI가 이런 식으로 작성되면 곧 볼 수 없습니다. :(

모든 라인은 "걸작"입니다. 오류와 실수의 덩어리, mql4가 그것을 제거하기를 희망합니다. 이제 MT4가 사용되는 이유가 명확해졌습니다.

그런 코드의 공개와 그에 따른 비판에 대한 반응은 포럼의 청중을 존중하는 것이 아니라고 생각합니다. 당신은 피해를 원하지 않습니다 - 그들은 당신을 돕고 싶어합니다.

그리고 알고리즘 비교에 대해서는 시각적으로 비교할 수 있습니다. 알고리즘이 "Windows 음영"에 99% 가까운 음영을 제공한다는 숫자의 증거를 제공하지 않았습니다.

왼쪽 - 접근하는 것처럼 오른쪽 - Nikolai Semko . (수정된 Nikolai Semko 스크립트가 사용되었습니다)


대본은 받았어? mt4에 내기를 했습니까? 체크? 비교? 그리고 여기있는 모든 사람들이 비난에 참여할 것입니다.))))

스크립트에 관해서는 - 이것은 내 알고리즘이 아닙니다. Nikolai는 방법도 모르고 직접 수정했습니다. 따라서 이 사진에 대해 그에게 연락하십시오.

 
Nikolai Semko :
일반적으로 말해서 더 바람직한 것은 두 색상 사이의 그라디언트 배열을 얻는 기능입니다. 실제로 더 쉽고 유용하기 때문입니다.

흰색 또는 검정색으로 한 가지 색상의 그라디언트가 필요한 경우 이 기능을 사용하여 이러한 방식으로 얻을 수 있습니다.


나는 당신에게 말했다. 불필요한 깜박임을 끕니다. 하나의 직사각형을 그립니다. 내 알고리즘과 아무 관련이 없는 그림 문제가 있습니다. 나는 당신에게 그것을 지적했다. 알아내세요.

 
Реter Konow :

나는 당신에게 말했다. 불필요한 깜박임을 끕니다. 하나의 직사각형을 그립니다. 내 알고리즘과 아무 관련이 없는 그림 문제가 있습니다. 나는 당신에게 그것을 지적했다. 알아내세요.

피터는 충분한 말. 제가 했던 것처럼 시각화를 통해 코드로 증명하세요. 반복합니다 - 나는 당신의 기능을 변경하지 않았지만 문자열 대신 uint 값만 가져왔습니다.
마지막으로 MQL5에서 문자열 없이 작동하는 함수 버전을 제공하십시오!

 
Yury Kulikov :

나는 "고발"에 합류 할 것입니다, 나는 그것을 참을 수 없었습니다 :)

프로그래밍하지 않는 방법의 좋은 예입니다. 전체 GUI가 이런 식으로 작성되면 곧 볼 수 없습니다. :(

모든 라인은 "걸작"입니다. 오류와 실수의 덩어리, mql4가 그것을 제거하기를 희망합니다. 이제 MT4가 사용되는 이유가 명확해졌습니다.

그런 코드의 공개와 그에 따른 비판에 대한 반응은 포럼의 청중을 존중하는 것이 아니라고 생각합니다. 당신은 피해를 원하지 않습니다 - 그들은 당신을 돕고 싶어합니다.

그리고 알고리즘 비교에 대해서는 시각적으로 비교할 수 있습니다. 알고리즘이 "Windows 음영"에 99% 가까운 음영을 제공한다는 숫자의 증거를 제공하지 않았습니다.

왼쪽 - 접근하는 것처럼 오른쪽 - Nikolai Semko . (수정된 Nikolai Semko 스크립트가 사용되었습니다)


이 gif에 대해 무엇에 열중합니까? 감동을 원하십니까? 아아, 당신은 이것을 위해 더 열심히 노력해야 할 것입니다. 나는 너무 그래픽적이다. 내 알고리즘을 사용하고 MT4에 베팅하고 색상을 인쇄하는 것이 좋습니다. 그런 다음 색상 팔레트 를 확인하십시오. 멘토님.

 
Nikolai Semko :

피터는 충분한 말. 제가 했던 것처럼 시각화를 통해 코드로 증명하세요. 나는 반복한다 - 나는 당신의 기능을 변경하지 않았지만 문자열 대신에 uint 값만 꺼냈다.

내 코드를 MT5로 변환하는 중입니다. 끝나면 보여드리겠습니다.

 
Nikolai Semko :
일반적으로 말해서 더 바람직한 것은 두 색상 사이의 그라디언트 배열을 얻는 기능입니다.

아마도 다음과 같이 조금 더 빠를 것입니다.

 void Gradient( uint clr1, uint clr2, uint &arr[], uint size)
  {
   if (size== 0 ) return ;
   ArrayResize (arr,size);
   rgb c1,c2;
   c1.clr=clr1;
   c2.clr=clr2;
   double R1=c1.c[ 2 ],G1=c1.c[ 1 ],B1=c1.c[ 0 ];
   double R2=c2.c[ 2 ],G2=c2.c[ 1 ],B2=c2.c[ 0 ];
   double deltaR=(R2-R1)/(size- 1 );
   double deltaG=(G2-G1)/(size- 1 );
   double deltaB=(B2-B1)/(size- 1 );
   R1 += 0.4999 ;
   G1 += 0.4999 ;
   B1 += 0.4999 ;
   for ( uint i= 0 ;i<size;i++)
     {
      R1+=deltaR; c1.c[ 2 ]= uchar (R1);
      G1+=deltaG; c1.c[ 1 ]= uchar (G1);
      B1+=deltaB; c1.c[ 0 ]= uchar (B1);
      arr[i]=c1.clr;
     }
  }
 
Nikolai Semko :

피터는 충분한 말. 제가 했던 것처럼 시각화를 통해 코드로 증명하세요. 나는 반복한다 - 나는 당신의 기능을 변경하지 않았지만 문자열 대신에 uint 값만 꺼냈다.

색상 팔레트 로 확인하지 않으시겠습니까? 그거 어렵 니?

그리고 왜 텍스트의 출력이 전체 직사각형의 그림을 변경하는 줄을 주석 처리합니까?

 
Реter Konow :

색상 팔레트를 확인하지 않겠습니까? 그거 어렵 니?

적어도 당신은 링크 또는 무언가를 떨어 뜨 렸습니다. 무엇을 비교할 것인가.

 
모든 결함은 MT5로 전환하는 동안 발생한 것 같습니다. MT4에는 이와 같은 것이 없습니다. MT5의 정확성이 훨씬 높아 문제가 발생합니다. 그러나 이것이 해결책이 좋지 않다는 것을 의미하지는 않습니다. 코드를 수정하면 됩니다.