forループを使用して長方形のグリッドを作成するこんにちは、
新しいウィンドウで24 x 2の長方形の配列を作成しようとしています。私は手動でグラフボックスのJSLコマンドを使ってこれらを作成することができますが、私はそれがずっと速いだろうforループを使って行われることができることを知っています。今のところ長方形は二次元であることだけが必要です、そして私が実装しようとしていた以下のコードはここにあります:
y1 = 5;
y2 = 10;
win = New Window("Spine",
gb = Graph Box(
Frame Size(1000,1000),
)
);
For(i = 0, i<24, i++,
Rect(5,y1,10,y2);
y1 = y2+1;
y2 = y1+5;
gb<<reshow;
);しかし、それはうまくいっていないし、私にエラーを投げかけているようにも見えません。助けてくれてありがとう。
再:forループを使用して長方形のグリッドを作成する私の例では、私はポイントの数が常に同じであることを意図しました、しかし浮動小数点丸めエラーはこのコードを作ります
for(y=y0,y<=y1,y+=(y1-y0)/16
16対17のステップを生成することもあります。これを書くためのより良い方法は次のようになります。
nsteps = 16;
for( iy = 0, iy <= nsteps, iy += 1,
y = y0 + iy * (y1 - y0) / nsteps;
それらを複製する(三重にする?)のではなく、角の点を除外するようにそのループを簡単に修正することができます...(iy = 1、iy 再:forループを使用して長方形のグリッドを作成する
クール
再:forループを使用して長方形のグリッドを作成するこれは、OpenGLを習得せずに3Dキューブを作成する方法です。それは本当にアウトラインを点でプロットしているので、点の数はかなり早く手に負えなくなり、そしてそれを遅くし過ぎることができます。この例では12Kポイントを使用していますが、それでもパフォーマンスは良好です。
立方体の3Dマトリックス
// make cube outlines using scatter plot points
dt = New Table( "cubes", New Column( "xx" ), New Column( "yy" ), New Column( "zz" ) );
make cube = function({dt,x0,x1,y0,y1,z0,z1},{x,y,z},
if(x1<X0></X0>再:forループを使用して長方形のグリッドを作成する私はJMPにOpenGLでアクセスすることに慣れていないので、グラフィカル環境をどれだけ利用できるかについてあなたの質問に答えることはできません。
あなたの他の問題に関しては、私はあなたがどのように3Dシーンの使用が3D機能の全世界を切り開くかをあなたに示すJMPと一緒に配布されたサンプルスクリプトをあなたに指摘するつもりです。 特に、MatrixRotationとPatchEditorのスクリプトを紹介します。このスクリプトでは、描画されたものを検出するためのフィードバックループがあり、それらのオブジェクトを操作することができます。
サンプルにアクセスするには、に行きます
ヘルプ==>サンプルデータ
そして開かれたウィンドウから「Open the Sample Scripts Directory」を選択します。
再:forループを使用して長方形のグリッドを作成するありがとうございます。完璧に動作します。四角形を行列として作成するために使用される点を取得する方法はありますか?JSLのOpenGL実装を使用してこのアイデアを3次元に拡張する簡単な方法はありますか?
再:forループを使用して長方形のグリッドを作成するGraph Box()は動的で、コードと組み合わせると、画面を更新しようとするたびにyの値が大きくなります。 問題の修正方法については、以下のコードを参照してください。
Names Default To Here( 1 );
win = New Window( "Spine",
gb = Graph Box(
Frame Size( 1000, 1000 ),
Y Scale( 0, 500 ),
X Scale( 0, 500 ),
For( i = 1, i < 25, i++,
If( i == 1,
y1 = 5;
y2 = 0;
);
Rect( 45, y1, 50, y2 );
Rect( 50, y1, 55, y2 );
y2 = y1 + 1;
y1 = y1 + 6;
)
)
);再:forループを使用して長方形のグリッドを作成するありがとうございます。これまでのところ、これは多少うまくいきますが、y = 5とy = 0の代わりにy〜125の位置に長方形を配置しています。これがなぜであるかもしれないかについての考えか。
Names Default to Here(1);
y1 = 5;
y2 = 0;
win = New Window("Spine",
gb = Graph Box(
Frame Size(1000,1000),
Y Scale(0,500),
X Scale(0,500),
For(i=1,i<25,i++,
Rect(45,y1,50,y2);
Rect(50,y1,55,y2);
y2 = y1+1;
y1 = y1+6;
);
)
);再:forループを使用して長方形のグリッドを作成する問題がいくつかあります。
1。コード内の "rect"はGraph Box()の外側にあるため、四角形を適用する場所がわかりません。
2。X軸とY軸の指定がグラフボックス()の範囲外になっています。
ここにあなたが行くのに役立つはずのいくつかのスターターコードがあります
Names Default To Here( 1 );
y1 = 5;
y2 = 10;
win = New Window( "Spine",
gb = Graph Box(
Frame Size( 1000, 1000 ),
For( i = 0, i < 5, i++,
Rect( 5,y1, 10,y2);
y1 = y2 + 1;
y2 = y1 + 5;
);
)
);