色を扱うための素晴らしい機能のセット!ありがとう。
しかし、私は、与えられた区間に横たわる数を色に変換する機能を欠いています(そして、色は、あなたの関数の助けを借りて好きなように変換することができます)。
私はそのような原始的な構造を使っている:
//+------------------------------------------------------------------+ //|JQS RainbowColour v1.0.0| //|著作権 © 2010, JQS aka Joo.| //| http://www.mql4.com/ru/users/joo | //|https://www.mql5.com/ja/users/joo //+------------------------------------------------------------------+ color RainbowColor(double BrushIn,double min,double max) { string R,G,B; int temp; double Brush=ScaleColor(BrushIn,min,max,0.0,100.0); //下限値より小さい場合 if (Brush<0.0) { R="255"; G="0"; B="0"; return(StringToColor("C'"+R+","+G+","+B+"'")); } //上限より大きい場合 if (Brush>100.0) { R="255"; G="0"; B="255"; return(StringToColor("C'"+R+","+G+","+B+"'")); } //赤から黄色へ 255.0.0 -> 255.255.255.0 if (Brush>=0.0 && Brush<20.0) { R="255"; temp=(int)MathRound(ScaleColor(Brush,0.0,20.0,0.0,255.0)); G=(string)temp; B="0"; return(StringToColor("C'"+R+","+G+","+B+"'")); } //-------------------------------------------- //黄色から緑色へ 255.255.0 -> 0.255.0 if (Brush>=20.0 && Brush<40.0) { temp=(int)(255.0-MathRound(ScaleColor(Brush-20.0,0.0,20.0,0.0,255.0))); R=(string)temp; G="255"; B="0"; return(StringToColor("C'"+R+","+G+","+B+"'")); } //-------------------------------------------- //緑から青 0.255.0 -> 0.255.255.255 if (Brush>=40.0 && Brush<60.0) { R="0"; G="255"; temp=(int)(MathRound(ScaleColor(Brush-40.0,0.0,20.0,0.0,255.0))); B=(string)temp; return(StringToColor("C'"+R+","+G+","+B+"'")); } //-------------------------------------------- //シアンからブルーへ 0.255.255 -> 0.0.255 if (Brush>=60.0 && Brush<80.0) { R="0"; temp=(int)(255.0-MathRound(ScaleColor(Brush-60.0,0.0,20.0,0.0,255.0))); G=(string)temp; B="255"; return(StringToColor("C'"+R+","+G+","+B+"'")); } //-------------------------------------------- //青から紫へ 0.0.255 -> 255.0.255 if (Brush>=80.0 && Brush<=100.0) { temp=(int)(MathRound(ScaleColor(Brush-80.0,0.0,20.0,0.0,255.0))); R=(string)temp; G="0"; B="255"; return(StringToColor("C'"+R+","+G+","+B+"'")); } return(StringToColor("C'"+(string)255+","+(string)255+","+(string)255+"'")); } //+------------------------------------------------------------------+ double ScaleColor(double In,double InMIN,double InMAX,double OutMIN,double OutMAX) { double Out=((In-InMIN)*(OutMAX-OutMIN)/(InMAX-InMIN))+OutMIN; return(Out); } //+------------------------------------------------------------------+
この関数は、虹色スケールに従った色を返します。
この関数をライブラリに追加してもらえませんか?- そしてスピードの面で改良してください。
joo:
暇なときにでも見て、どんな関数か調べて、必要なら挿入してみるよ。しかし一般的には、HSLからHSLへの変換がある。H成分は色相(色番号)で、ちょうど0から1まで虹全体を通過します。
色を扱うための素晴らしい機能のセット!ありがとう。
しかし、私は、与えられた区間に横たわる数を色に変換する機能を欠いています(そして、色は、あなたの関数の助けを借りて好きなように変換することができます)。
私はそのような原始的な構造を使っている:
この関数は、虹色スケールに従った色を返します。
この関数をライブラリに追加してもらえませんか?- そしてスピードの面で改良してください。

取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
IncColors:
作者: Dmitry Fedoseev