Creazione di curve di Bezier utilizzando stringhe di percorso SVGHo due percorsi SVG costruiti allo stesso modo.
a = "M 10 60 C 20 80 40 80 50 60";
b = "M 0 -150 C 82.8 -150 150 -82.8 150 0";
Un rapido grafico di "a" mostra il seguente arco
New Window( "JMP 8PFU Layout Example",
Graph Box(
frameSize( 500, 500 ),
xScale(-175,175),
yScale(-175,175),
penColor("blue");
penSize(2);
path(a, 0);
);
);
Tuttavia quando provo a tracciare "b" ricevo un errore
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);
);
);Se aggiungo un carattere di "chiusura" "z" nella curva, disegna il segmento, riportando la "linea" al punto di origine. Funziona ma non è quello che voglio: voglio solo l'arco.
b = "M 0 -150 C 82.8 -150 150 -82.8 150 0 z";

Il mio obiettivo finale è combinare 4 archi per approssimare un cerchio
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);
);
);
Ancora una volta, quando rimuovo il carattere "z" ottengo lo stesso errore.
Per completezza, ho provato questa stringa combinata in un browser web con i caratteri "z" rimossi ed è stata visualizzata correttamente
< svg viewBox = "-175 -175 350 350" stile = "bordo: verde solido;" >
< sentiero id = "Wrf_Edge" colpo = "nero" riempire = "nessuno" larghezza del tratto = "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 -1500" />
svg >

Ingegneria della qualità e dei processiRi: Creazione di curve di Bezier utilizzando stringhe di percorso SVGNo Jarmo, non ho usato eval/insert. Ci proverò più tardi, quando avrò un minuto.
Per inciso, non avevo bisogno di creare quattro archi di Bezier per generare un cerchio. SVG ha un tag "A" (Arco) che può disegnarne uno con molti meno caratteri... ed è molto più facile da comprendere poiché non ha bisogno di generare alcun "punto di controllo" di Bezier
Avevo bisogno di aggiungere il "doppio 0" alla fine della stringa per farlo funzionare, come nell'altro esempio sopra.
"M -150 0 a 150 150 0 1 0 300 0 a 150 150 0 1 0 -300 00"
Confrontando SVG ARC, SVG Bezier Curves e la funzione nativa 'Circle' in JMP, tutti si avvicinano abbastanza bene.
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 = Giallo
Curva di Bezier a 4 segmenti SVG = Rossa
Funzione 'Cerchio' di JMP = Nero.

Ri: Creazione di curve di Bezier utilizzando stringhe di percorso SVGPosso confermare che fallisce anche su JMP14.Una cosa che puoi fare è costruire le curve di Bezier capovolte come sotto (richiede solo un comando MOVE, poiché il punto finale di ogni C è il punto iniziale di quello successivo)
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);
);
);Ri: Creazione di curve di Bezier utilizzando stringhe di percorso SVGHmmm, sembra che a JMP (testato solo su 15.2.0) non piaccia l'ultimo carattere se è uno "0". Se lo imposto su un altro valore o 'raddoppio' sullo '0' rendendolo '00', allora funziona bene. quindi la stringa:
" M 0 150 C 82,8 150 150 82,8 150 0 "
diventa
"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);
);
);

Ri: Creazione di curve di Bezier utilizzando stringhe di percorso SVGL'ho provato anche con la stringa combinata (copia incollata dallo snippet del browser), ha funzionato bene:
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);
)
);

Hai provato a modificare la parte Personalizza della casella grafico? O forse usando Eval Insert per aggiungere la stringa a Path() (non sono sicuro del motivo per cui sarebbe necessario però...)

Ri: Creazione di curve di Bezier utilizzando stringhe di percorso SVGÈ strano, Jarmo. Sto usando 15.2.0. Hai provato utilizzando la stringa combinata?
Alla fine, creerò molte stringhe SVG e le salverò in una tabella DB affinché gli sviluppatori di app possano utilizzarle. Per inciso questo cerchio rappresenta la circonferenza di un wafer. Di conseguenza ho bisogno di una sola stringa che funzioni per tutti gli ambienti di sviluppo. Per le applicazioni JMP non voglio utilizzare quattro archi distinti, ma piuttosto una sola stringa per evitare duplicazioni nel DB.
Spero che questo abbia senso.
A proposito, ho letteralmente riavviato JMP e ho copiato/incollato il tuo codice in uno script senza modifiche e crea ancora questo errore. Proverò un'altra versione di JMP.

Ri: Creazione di curve di Bezier utilizzando stringhe di percorso SVGPer me sembra funzionare bene, utilizzando JMP16.2 Pro e Windows 10 (correlato alla versione?)
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);
)
);

(con Graph Box utilizzerei Eval Insert in modo che Personalizza mostri le informazioni corrette nel menu di scelta rapida)