Teechart上に十字線や横線


yTake  2016-04-12 05:10:01  No: 48159

yTakeです。
TeeChatで振幅0〜100のサイン波をプロットします。
値80以上と20以下でプロットの色を変更します。
この時、80と20の位置に横線を引いて、また、この横線は矢印などで可変とします。"DoHorizLine"なるメソッドがありましたが、横線は引かれません。
例、
Chart1.Canvas.DoHorizLine( 0, 100, 80 );

また、プロット上の任意の点上で十字線を引く場合、一般的にはどの様にするのでしょう?"CrossHair"等のプロパティは見当たらない様です。

もし、この様な事が可能でしたら、ご教授願えるでしょうか?

こちらは、
Windows10, XE6, TeeChart Lite
です。


MAD  URL  2016-04-13 00:03:57  No: 48160

C++Builderでしか使ったことが無いですが、
TeeChartのAfterDrawなどのイベントでChartのCanvasにMoveToやLineToで描画します。
座標値はChartのSeriesプロパティに幾つもの変換用メソッドが有ります。


yTake  2016-04-13 03:44:15  No: 48161

MADさん
ありがとうございます。
グラフとCanvasは座標系が違ったのですね。
"CalcXposValue", "CalcYPosValue"で変換し、"MoveTo", "LineTo"で実現できました。

変換された座標系を用いる事で、"DoHorizLine"でも実現できました。

水平線を2本引いて、一方のみを値を変えて引き直す場合でも、全て(データのプロットも)を消して引き直すやり方になるのでしょうか?

一方の水平線を削除する様なメソッドは見当たりません。そもそも、水平線の区別がついていませんね。

ご回答頂ければ幸いに存じます。


tor  2016-04-13 04:28:51  No: 48162

水平線だけなら、値が一定のデータを系列として追加して、折れ線グラフとして表示すればいいのではないでしょうか。
まあグラフ内に簡単な図形を置けるヤテモってのもあるみたいですけど。

「十字線」というのがどういうのを求めているのか分かりませんけど、グラフ上の点に印を付けるという目的ならヘやマヌヘヤが使えると思います。
スススススススススススススススススススススススススススススススススススススススス
ニコ ヘチト
ナュヘコ タョョ
ネミコ コッッョョッアッ
トコ イーアカッーエッアイィ火ゥ イアコーエコイー  書込者ノト:ロ ヲゥヲ ン

テのミのヘをリにすれば反転した色で線が引かれるので、同じ位置にもう一度線を引けば消えます。
テのメメソッドを呼んで再描画させても案外ちらつきませんが。
スススススススススススススススススススススススススススススススススススススススス
ニコ yTake
トコ イーアカッーエッアウィ水ゥ ークコエケコエー  書込者ノト:ロ 」。ァ ン
モコ 

さん、ヘチトさん
ありがとうございます。

目から鱗です。

グラフデータとして水平線を描画すると言う発想はありませんでした。
これなら、表示のオンオンや移動も楽そうです。
ただ、波形データは実は定常波ではなく進行波なので、水平線をグラフデータとした場合では、水平線データも更新しないと、消えて行ってしまいますね。

また、テョミのヘを「リ「で上書きすると線が消えると言う事も便利そうです。この辺りのプロパティの詳細が分かれば良いのですが、、、
ネにも詳しく載っていない様に思いますが、見方が悪いのでしょうか?

「マヌヘヤ「や、「メ「も試してみます。

大変、ありがとうございました。
スススススススススススススススススススススススススススススススススススススススス
ニコ ヘチト
ナュヘコ タョョ
ネミコ コッッョョッアッ
トコ イーアカッーエッアウィ水ゥ アアコエオコアー  書込者ノト:ロ 「「」。「 ン

解決済みですが蛇足ながら
テョミの詳細はヤテ固有の話でなくヨテフでの定義なので、
でヲサヲサヲサあたりを検索するとたくさんの情報が出てきます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加