使用 SVG 路徑字串製作貝塞爾曲線我有兩個以相同方式建構的 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”字符,並且它正確呈現
< svg視圖框= “-175 -175 350 350”風格= “邊框:綠色實線;” >
<小路ID = “Wrf_邊緣”中風= “黑色的”充滿= “沒有任何”筆畫寬度= “1” d = 「M 0 150℃ 82.8 150 150 82.8 150 0 M 0 -150℃ 82.8 -150 150 -82.8 150 0 M 0 -150℃ -82.8 -150 -150 -82.885010 ℃ -82.8 -150 -150 -82.885010 ℃ - 5012 . 8 -150 0" />
svg >

品質和工藝工程回覆:使用 SVG 路徑字串製作貝塞爾曲線不,Jarmo,我沒有使用 eval/insert。 等我有時間的時候我會試試看。
順便說一句,我不需要製作四個貝塞爾弧來產生一個圓。 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 中的原生「圓」函數,它們都非常接近。
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“圓形”功能 = 黑色。

回覆:使用 SVG 路徑字串製作貝塞爾曲線我可以確認它在 JMP14 上也失敗了。您可以做的一件事是從後到前構造貝塞爾曲線,如下所示(它只需要一個 MOVE 指令,因為每個 C 的終點都是下一個 C 的起點)
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);
);
);回覆:使用 SVG 路徑字串製作貝塞爾曲線嗯,看起來 JMP(僅在 15.2.0 上測試)不喜歡最後一個字符,如果它是“0”。 如果我將其設為另一個值或將“0”設為“00”,那麼它就可以正常工作。所以字串:
」中 0 150 ℃ 82.8 150 150 82.8 150 0 」
變成
“米 0 150 ℃ 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);
);
);

回覆:使用 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() (但不確定為什麼需要它...)

回覆:使用 SVG 路徑字串製作貝塞爾曲線這很奇怪,賈莫。 我使用的是15.2.0。 您是否嘗試過使用組合字串?
最終,我將製作許多 SVG 字串並將它們保存在資料庫表中以供應用程式開發人員使用。 順便提及,該圓代表晶片的周長。 因此,我只需要一個適用於所有開發環境的字串。 對於 JMP 應用程序,我不想使用四個不同的弧,而只想使用一個字串以避免資料庫中的重複。
我希望這是有道理的。
順便說一句,我確實重新啟動了 JMP 並將程式碼複製/貼上到腳本中,沒有進行任何修改,但它仍然會產生此錯誤。 我將嘗試另一個 JMP 版本。

回覆:使用 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,以便自訂將在右鍵單擊選單上顯示正確的資訊)