SVG パス文字列を使用したベジェ曲線の作成同じ方法で構築された 2 つの SVG パスがあります。
a = "M 10 60 C 20 80 40 80 50 60";
b = "M 0 -150 C 82.8 -150 150 -82.8 150 0";
「a」の簡単なプロットは次の円弧を示します
New Window( "JMP 8PFU Layout Example",
Graph Box(
frameSize( 500, 500 ),
xScale(-175,175),
yScale(-175,175),
penColor("blue");
penSize(2);
path(a, 0);
);
);
ただし、「b」をプロットしようとすると、エラーが発生します
DisplayBox[EvalContextBox]
argument value is invalid in access or evaluation of 'Path' , Bad Argument( b ), Path/*###*/(b, 0)
New Window( "JMP 8PFU Layout Example",
Graph Box(
frameSize( 500, 500 ),
xScale(-175,175),
yScale(-175,175),
penColor("blue");
penSize(2);
path(combined, 0);
);
);曲線に「終了」文字「z」を追加すると、セグメントが描画され、「線」が原点に戻ります。 これは機能しますが、私が望むものではありません。私はアークが欲しいだけです。
b = "M 0 -150 C 82.8 -150 150 -82.8 150 0 z";

私の最終的な目標は、4 つの円弧を組み合わせて円に近似することです。
tr = "M 0 150 C 82.8 150 150 82.8 150 0 z";
br = "M 0 -150 C 82.8 -150 150 -82.8 150 0 z";
bl = "M 0 -150 C -82.8 -150 -150 -82.8 -150 0 z";
tl = "M 0 150 C -82.8 150 -150 82.8 -150 0 z";
combined = "M 0 150 C 82.8 150 150 82.8 150 0 z M 0 -150 C 82.8 -150 150 -82.8 150 0 z M 0 -150 C -82.8 -150 -150 -82.8 -150 0 z M 0 150 C -82.8 150 -150 82.8 -150 0 z";
New Window( "JMP 8PFU Layout Example",
Graph Box(
frameSize( 500, 500 ),
xScale(-175,175),
yScale(-175,175),
penColor("blue");
penSize(2);
path(combined, 0);
);
);
もう一度、「z」文字を削除すると、同じエラーが発生します。
完全を期すために、「z」文字を削除してこの結合文字列をWebブラウザで試してみましたが、正しくレンダリングされました。
< SVGビューボックス= 「-175 -175 350 350」スタイル= 「境界線: 緑色の実線;」 >
<パスID = 「Wrf_Edge」脳卒中= "黒"埋める= "なし"ストローク幅= 「1」 d = 「M 0 150 C 82.8 150 150 82.8 150 0 M 0 -150 C 82.8 -150 150 -82.8 150 0 M 0 -150 C -82.8 -150 -150 -82.8 -150 0 M 0 150 C -82.8 150 -150 82」 8 -150 0" />
SVG >

品質およびプロセスエンジニアリングRe: SVG パス文字列を使用してベジェ曲線を作成するいいえ、Jarmo、私は eval/insert を使用しませんでした。 後で少し時間ができたら試してみます。
余談ですが、円を生成するためにベジェ円弧を 4 つ作成する必要はありませんでした。 SVG には「A」(円弧)タグがあり、はるかに少ない文字で描画できるほか、ベジェ「制御点」を生成する必要がないため、はるかに理解しやすいです。
ただし、上記の他の例と同様に、文字列の末尾に「ダブル 0」を追加して機能させる必要がありました。
"M -150 0 a 150 150 0 1 0 300 0 a 150 150 0 1 0 -300 00"
SVG ARC、SVG ベジェ曲線、および JMP のネイティブ 'Circle' 関数を比較すると、それらはすべてかなりよく近似しています。
circleArcSyntax = "M -150 0 a 150 150 0 1 0 300 0 a 150 150 0 1 0 -300 00";
circleCurveSyntax = "M 0 150 C 82.8 150 150 82.8 150 00 M 0 -150 C 82.8 -150 150 -82.8 150 00 M 0 -150 C -82.8 -150 -150 -82.8 -150 00 M 0 150 C -82.8 150 -150 82.8 -150 00";
New Window( "JMP Circle Layout Example",
Graph Box(
frameSize( 500, 500 ),
xScale(-175,175),
yScale(-175,175),
penSize(20);
penColor("yellow");
path(circleArcSyntax, 0);
penColor("red");
penSize(10);
path(circleCurveSyntax, 0);
penSize(2);
penColor("black");
circle({0,0}, 150);
);
);SVG ARC = 黄色
SVG 4 セグメント ベジェ曲線 = 赤
JMP「サークル」機能 = 黒。

Re: SVG パス文字列を使用してベジェ曲線を作成するJMP14でも失敗することが確認できました。できることの 1 つは、以下のようにベジェ曲線を後ろから前に構築することです (各 C の終点が次の C の始点になるため、必要な MOVE コマンドは 1 つだけです)。
circle = "M 0,150 C 82.8,150 150,82.8 150,0 C 150,-82.8 82.8,-150 0,-150 C -82.8,-150 -150,-82.8 -150,0 C -150,82.8 -82.8,150 0,150 z";
New Window( "JMP Layout Example",
Graph Box(
frameSize( 500, 500 ),
xScale(-175,175),
yScale(-175,175),
penColor("blue");
penSize(2);
path(circle , 0);
);
);Re: SVG パス文字列を使用してベジェ曲線を作成するうーん、JMP (15.2.0 でのみテスト済み) は、最後の文字が「0」の場合は好まないようです。 別の値に設定するか、「0」を「2倍」にして「00」にすると、正常に動作します。したがって、文字列は次のようになります。
」 M 0 150 C 82.8 150 150 82.8 150 0 」
になる
「M 0 150 C 82.8 150 150 82.8 150 00」
</CODE></P><P> </P><PRE><CODE class=" language-jsl">circle = "M 0 150 C 82.8 150 150 82.8 150 00 M 0 -150 C 82.8 -150 150 -82.8 150 00 M 0 -150 C -82.8 -150 -150 -82.8 -150 00 M 0 150 C -82.8 150 -150 82.8 -150 00";
New Window( "JMP Layout Example",
Graph Box(
frameSize( 500, 500 ),
xScale(-175,175),
yScale(-175,175),
penColor("blue");
penSize(2);
path(circle, 0);
);
);

Re: SVG パス文字列を使用してベジェ曲線を作成する結合された文字列(ブラウザのスニペットからコピーして貼り付けたもの)でも試してみましたが、うまくいきました。
Names Default To Here(1);
New Window("JMP 8PFU Layout Example",
Graph Box(
frameSize(500, 500),
X Scale(-175, 175),
Y Scale(-175, 175),
Pen Size(2);
Pen Color("blue");
Path("M 0 150 C 82.8 150 150 82.8 150 0 M 0 -150 C 82.8 -150 150 -82.8 150 0 M 0 -150 C -82.8 -150 -150 -82.8 -150 0 M 0 150 C -82.8 150 -150 82.8 -150 0", 0);
)
);

グラフボックスのカスタマイズ部分を変更してみましたか? あるいは、Eval Insert を使用して文字列を Path() に追加することもできます (ただし、なぜそれが必要なのかはわかりません...)

Re: SVG パス文字列を使用してベジェ曲線を作成する変なジャーモだ。 15.2.0を使用しています。 結合文字列を使用して試してみましたか?
最終的には、多くの SVG 文字列を作成し、アプリ開発者が使用できるように DB テーブルに保存する予定です。 なお、この円はウェーハの円周を表している。 その結果、すべての開発環境で機能する文字列が 1 つだけ必要になります。 JMP アプリケーションの場合、4 つの異なるアークを使用するのではなく、DB 内での重複を避けるために 1 つの文字列だけを使用したいと考えています。
これが理にかなっているといいのですが。
ところで、文字通り JMP を再起動し、コードを変更せずにスクリプトにコピー/ペーストしましたが、それでもこのエラーが発生します。 別の JMP バージョンを試してみます。

Re: SVG パス文字列を使用してベジェ曲線を作成する私の場合、JMP16.2 Pro と Windows 10 を使用すると、これは問題なく動作するようです (バージョンに関係がある?)。
Names Default To Here(1);
tr = "M 0 150 C 82.8 150 150 82.8 150 0";
br = "M 0 -150 C 82.8 -150 150 -82.8 150 0";
bl = "M 0 -150 C -82.8 -150 -150 -82.8 -150 0";
tl = "M 0 150 C -82.8 150 -150 82.8 -150 0";
New Window("JMP 8PFU Layout Example",
Graph Box(
frameSize(500, 500),
X Scale(-175, 175),
Y Scale(-175, 175),
Pen Size(2);
Pen Color("blue");
Path(tr, 0);
Pen Color("red");
Path(br, 0);
Pen Color("green");
Path(tl, 0);
Pen Color("red");
Path(bl, 0);
)
);

(グラフ ボックスでは Eval Insert を使用して、カスタマイズにより右クリック メニューに正しい情報が表示されるようにします)