Gnu Octaveには、ラインまたはポリゴンを描画するための既存のコードがありますか?

StackOverflow https://stackoverflow.com/questions/1429165

  •  07-07-2019
  •  | 
  •  

質問

背景:

2Dマトリックス(実際には画像)と、ポリゴンを定義する一連のポイントを取得し、そのポリゴンをマトリックスに描画できるようにしたいのです。

私が逃げて車輪を再発明する前に、Octaveでこれを行う既存のライブラリまたはコードを知っている人がいるかどうか尋ねると思いました。これまでのところ、Octaveパッケージとgoogleでの検索は空になりました。

これに失敗すると、どちらも実装するのが難しすぎますが、塗りつぶされたポリゴンをどのように描くかはわかりません。どのポイントがポリゴンの内側にあり、どのポイントが外側にあるかを簡単に/効率的に確認する方法はありますか?ありがとう。

編集:

私の目的は何も表示しないことです。実際、私が具体的に見ているのは、凸包のプロット、その領域の検索、元のオブジェクトにない凸包の部分の検索など、いくつかの画像処理です。

Gnu Plotが実際に作業できるデータを返すとは思えません。私が間違っている場合は、ぜひその方法を教えてください。ありがとう。

役に立ちましたか?

解決

ポリゴン内のポイントを見つけるには、MATLAB Centralに投稿されたDarren EngwirdaのMATLAB関数を試すことができます: http://www.mathworks.com/matlabcentral/fileexchange/10391

コードをざっと見てみましたが、特にMATLAB固有のものは見当たらないため、Octaveでそのまま実行できます。

他のヒント

編集:OPの編集上部に応答して、見つけやすくします:

gnuplotをファイルに直接レンダリングするさまざまな方法があります( 「端末」までスクロールダウンします)、分析のために読み込むことができます。たとえば、ポータブルビットマップ形式への出力を使用すると、読み書きが驚くほど簡単になります。 (小さくてエレガントでない場合)。定義により、PBMは黒と白の配列を提供することに注意してください。

たとえば、次の" set terminal"の使用を確認してください。および「出力の設定」コマンドは、pbmを作成してからpngファイルを作成する一連のUnixパイプにレンダリングします。

編集の終了:

Gnu Octaveはデフォルトでプロットにgnuplotを使用しますが、gnuplotは塗りつぶされたポリゴンの作成に非常に適しています。まさにそのようなことの役立つデモがあります。たとえば、ここにはいくつかの塗りつぶされたポリゴンがあります

# set terminal png transparent nocrop enhanced font arial 8 size 420,320 
# set output 'fillcrvs.4.png'
set grid nopolar
set grid xtics nomxtics ytics nomytics noztics nomztics \
 nox2tics nomx2tics noy2tics nomy2tics nocbtics nomcbtics
set grid front   linetype 0 linewidth 1.000,  linetype 0 linewidth 1.000
set key outside right top vertical Right noreverse enhanced autotitles nobox
set title "The red bat: abs(x) with filledcurve xy=2,5" 
plot abs(x) with filledcurve xy=2,5

ここに別のデモスクリプトがあります。塗りつぶし曲線ページ:

# set terminal png transparent nocrop enhanced font arial 8 size 420,320 
# set output 'fillcrvs.6.png'
unset border
set dummy t,y
set grid nopolar
set grid xtics nomxtics ytics nomytics noztics nomztics \
 nox2tics nomx2tics noy2tics nomy2tics nocbtics nomcbtics
set grid layerdefault   linetype 0 linewidth 1.000,  linetype 0 linewidth 1.000
unset key
set label 1 "gnuplot" at 0, 1.2, 0 centre norotate front nopoint offset character 0, 0, 0
set label 2 "gnuplot" at 0.02, -0.6, 0 centre norotate front nopoint offset character 0, 0, 0
set arrow 1 from -0.1, 0.26, 0 to 0.18, -0.17, 0 head front nofilled linetype 5 linewidth 4.000 size first 0.100,40.000,90.000
set parametric
set size ratio 1 1,1
set noxtics
set noytics
set title "Let's smile with parametric filled curves" 
set xrange [ -1.00000 : 1.00000 ] noreverse nowriteback
set yrange [ -1.00000 : 1.60000 ] noreverse nowriteback
plot [t=-pi:pi]     sin(t),cos(t) with filledcurve xy=0,0 lt 15,        sin(t)/8-0.5,cos(t)/8+0.4 with filledcurve lt 3,        sin(t)/8+0.5,cos(t)/8+0.4 with filledcurve lt 3,        t/5,abs(t/5)-0.8 with filledcurve xy=0.1,-0.5 lt 1,     t/3,1.52-abs(t/pi) with filledcurve xy=0,1.8 lt -1
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top