グラフの上に文字や図形を描く機能があるのはあまり知られていません。
プロパティノードのプロット画像にピクチャ関数を使って描いた図形を、ピクチャデータで書き込めば使えます。
しかし、ピクチャではピクセル単位で図形を描かなければいけないので、グラフのXYの値との座標変換が必要です。
そこで、面倒な座標変換を組み込んだVIライブラリを作成しました。
ライブラリの関数には、ピクチャ関数に対応して、以下の関数を作りました。
DrawPointOnGraph.vi :点を打つ関数
DrawLineOnGraph.vi :線を引く関数
DrawMultiLinesOnGraph.vi :複数の線を引く関数
DrawRectOnGraph.vi :四角形を描く関数
DrawGORectOnGraph.vi :グレー表示の長方形を描く関数
DrawRoundRectOnGraph.vi :角の丸い長方形を描く関数
DrawOvalOnGraph.vi :楕円を描く関数
DrawArcOnGraph.vi :円弧を描く関数
DrawClearOnGraph.vi :円を描く関数
DrawTextAtPointOnGraph.vi :指定した位置に文字を描く関数
DrawTextInRectOnGraph.vi :指定した枠内に文字を描く関数
DrawCircleByROnGraph.vi :半径を指定して円を描く関数
使い方は、動作確認用のDrawPictOnGraphTest.viを参照してください。
この関数は"波形グラフ"、"XYグラフ"、"デジタルグラフ"、"ミックスドシグナルグラフ"、"強度グラフ"の各グラフに対応しています。
グラフのリファレンスと設定値を入力して実行すると、リファレンスで指定したグラフに画像が描かれます。
長方形を描くDrawGORectOnGraphd.VIを例に説明します。
最初にリファレンスからプロパティノードを利用してクラス名を取得します。
このクラス名から、グラフの種類を知ることができます。グラフの種類ごとにクラスを変換して、ピクチャや、X軸Y軸のスケール情報を取得します。
取得したスケール情報から座標変換を行い、画像の位置を計算しピクチャ関数の四角形描画関数で図形を描きプロパティノードでグラフに書き込みます。
グラフには基本的に、3枚の画像レイヤがあり、その位置も指定できます。
また、OverWriteをOFFにすると元々ある画像に追記することができます。