Créer des courbes de Bézier à l'aide de chaînes de chemin SVGJ'ai deux chemins SVG qui sont construits de la même manière.
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 tracé rapide de « a » montre l'arc suivant
New Window( "JMP 8PFU Layout Example",
Graph Box(
frameSize( 500, 500 ),
xScale(-175,175),
yScale(-175,175),
penColor("blue");
penSize(2);
path(a, 0);
);
);
Cependant, lorsque j'essaie de tracer « b », j'obtiens une erreur
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);
);
);Si j'ajoute un caractère « de fermeture » « z » dans la courbe, il dessine le segment, renvoyant la « ligne » au point d'origine. Cela fonctionne mais ce n'est pas ce que je veux - je veux juste l'arc.
b = "M 0 -150 C 82.8 -150 150 -82.8 150 0 z";

Mon objectif ultime est de combiner 4 arcs pour se rapprocher d'un cercle
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);
);
);
Encore une fois, lorsque je supprime le caractère « z », j'obtiens la même erreur.
Pour être complet, j'ai essayé cette chaîne combinée dans un navigateur Web avec les caractères « z » supprimés et elle a été rendue correctement.
< SVG viewBox = "-175 -175 350 350" style = "bordure : verte solide ;" >
< chemin identifiant = "Wrf_Edge" accident vasculaire cérébral = "noir" remplir = "aucun" largeur du trait = "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 >

Ingénierie Qualité et ProcédésRe : Créer des courbes de Bézier à l'aide de chaînes de chemin SVGNon Jarmo, je n'ai pas utilisé le eval/insert. J'essaierai plus tard quand j'aurai une minute.
En passant, je n'ai pas eu besoin de faire quatre arcs de Bézier pour générer un cercle. SVG a une balise « A » (Arc) qui permet d'en dessiner une avec beaucoup moins de caractères... et est beaucoup plus facile à comprendre car il n'a pas besoin de générer de « points de contrôle » de Bézier.
J'ai dû ajouter le « double 0 » à la fin de la chaîne pour que cela fonctionne, comme dans l'autre exemple ci-dessus.
"M -150 0 a 150 150 0 1 0 300 0 a 150 150 0 1 0 -300 00"
En comparant SVG ARC, les courbes de Bézier SVG et la fonction native « Cercle » dans JMP, ils se rapprochent tous assez bien.
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 = Jaune
Courbe de Bézier SVG 4 segments = Rouge
Fonction JMP 'Cercle' = Noir.

Re : Créer des courbes de Bézier à l'aide de chaînes de chemin SVGJe peux confirmer qu'il échoue également sur JMP14.Une chose que vous pouvez faire est de construire les courbes de Bézier à l'envers comme ci-dessous (cela ne nécessite qu'une seule commande MOVE, car le point final de chaque C est le point de départ du suivant)
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 : Créer des courbes de Bézier à l'aide de chaînes de chemin SVGHmmm, il semble que JMP (testé uniquement sur 15.2.0) n'aime pas le dernier caractère s'il s'agit d'un « 0 ». Si je le règle sur une autre valeur ou si je « double » le « 0 » pour le rendre « 00 », cela fonctionne bien. donc la chaîne :
" M 0 150 C 82,8 150 150 82,8 150 0 "
devient
"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 : Créer des courbes de Bézier à l'aide de chaînes de chemin SVGJe l'ai également essayé avec la chaîne combinée (copie-collée à partir de l'extrait de navigateur), cela a bien fonctionné :
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);
)
);

Avez-vous essayé de modifier la partie Personnaliser de la zone graphique ? Ou peut-être en utilisant Eval Insert pour ajouter la chaîne à Path() (je ne sais pas pourquoi cela serait nécessaire cependant...)

Re : Créer des courbes de Bézier à l'aide de chaînes de chemin SVGC'est bizarre Jarmo. J'utilise 15.2.0. L'avez-vous essayé en utilisant la chaîne combinée ?
En fin de compte, je créerai de nombreuses chaînes SVG et les enregistrerai dans une table DB pour que les développeurs d'applications puissent les utiliser. Ce cercle représente d'ailleurs la circonférence d'une plaquette. En conséquence, j’ai besoin d’une seule chaîne qui fonctionne pour tous les environnements de développement. Pour les applications JMP, je ne souhaite pas utiliser quatre arcs distincts, mais plutôt une seule chaîne pour éviter la duplication dans la base de données.
J'espère que cela a du sens.
BTW, j'ai littéralement redémarré JMP et copié/collé votre code dans un script sans modification et cela crée toujours cette erreur. Je vais essayer une autre version de JMP.

Re : Créer des courbes de Bézier à l'aide de chaînes de chemin SVGPour moi, cela semble fonctionner correctement, en utilisant JMP16.2 Pro et Windows 10 (lié à la version ?)
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);
)
);

(avec Graph Box, j'utiliserais Eval Insert pour que la personnalisation affiche les informations correctes dans le menu contextuel)