Comment effectuer un décalage de polygone vers l'extérieur dans JMPSalut tout le monde,
J'aimerais savoir s'il est possible de décaler des polygones vers l'extérieur dans JMP. Si oui, pourriez-vous m'expliquer comment procéder ?
Supposons que je possède les coordonnées d'un hexagone et que je souhaite tracer une zone tampon d'une distance de 10 autour de l'hexagone. Comment puis-je procéder ?
Merci beaucoup
Automatisation et scriptsRe : Comment effectuer un décalage de polygone vers l'extérieur dans JMPD'où vient l'hexagone d'origine ?
Le produisez-vous à l'aide d'une boîte graphique JMP ?
Des détails plus précis seront très utiles
Re : Comment effectuer un décalage de polygone vers l'extérieur dans JMPSalut @txnelson ,
Le polygone est obtenu à partir du tracé de contour en enregistrant le contour

Après avoir enregistré les contours, je trace un graphique X et Y. Comment puis-je tracer un décalage le long du contour du polygone ? Merci beaucoup.

Re : Comment effectuer un décalage de polygone vers l'extérieur dans JMPJMP permet d'ajouter des éléments graphiques à toute sortie graphique grâce au script d'ajout de graphiques. L'index des scripts fournit de la documentation et des exemples pour l'ajout d'objets supplémentaires.
Aide=>Index des scripts
Un ensemble complet de primitives graphiques est disponible dans JSL.
Voici un exemple simple tiré directement du Guide de script qui illustre cette capacité
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = Bivariate(
Y( :weight ),
X( :height ),
FitLine
);
rbiv = biv << report;
framebox = rbiv[frame box( 1 )];
framebox <<
Add Graphics Script(
Transparency( 0.5 );
Fill Color( {1.0, 0.5, 0.0} );
Polygon( [60, 72, 57], [75, 120, 120] );
);

Re : Comment effectuer un décalage de polygone vers l'extérieur dans JMPSalut @txnelson
Comme pour votre graphique, nous avons saisi manuellement des nombres pour dessiner un polygone. Pourrions-nous le faire par script ? Par exemple :
Nous avons une liste de coordonnées X et Y, ainsi qu'une distance. Comment puis-je effectuer un calcul par script ?
J'aimerais également poser une question : lorsque je trace un graphique de contour et que je l'enregistre, JMP génère un tableau avec les coordonnées X et Y.
J'ai rencontré un problème : lorsque j'utilisais une syntaxe telle que « Dans un polygone (matrice a, b, x, y) », le résultat était incorrect. Même si certains points sont à l'intérieur d'un polygone, JMP les renvoie hors du polygone.
Dois-je effectuer un tri ou un traitement des données avant d'utiliser In Polygon ?
Merci
Re : Comment effectuer un décalage de polygone vers l'extérieur dans JMPAvez-vous essayé de tracer le polygone que vous obtenez et ressemble-t-il à ce que vous attendez ?
Re : Comment effectuer un décalage de polygone vers l'extérieur dans JMPJe pense que lorsque vous dites « insérer manuellement les nombres dans le graphique », vous indiquez que le JSL est « codé en dur » pour un polygone spécifique. C'est vrai, mais cela ne signifie pas qu'il doive être codé en dur. Le JSL est un langage de script complet. Les valeurs numériques qui définissent le polygone que vous souhaitez générer peuvent être calculées en JSL, puis utilisées dans la fonction Polygon() pour dessiner le polygone à afficher. Je suppose que si vous souhaitez dessiner un polygone de 10 unités autour des points affichés, vous devrez probablement parcourir toutes les valeurs, calculer la distance entre la moyenne de toutes les valeurs x et y et le point spécifique, ajouter 10 unités à la distance, puis calculer le point x et y de cette valeur. Ou quelque chose comme ça. Mais tout cela est possible en JSL. Voici un exemple simple de dessin d'un polygone incluant les points x et y maximum.
Names Default To Here( 1 );
dt=Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = Bivariate(
Y( :weight ),
X( :height ),
FitLine
);
rbiv = biv << report;
framebox = rbiv[frame box( 1 )];
framebox <<
Add Graphics Script(
Transparency( 0.5 );
Fill Color( {1.0, 0.5, 0.0} );
// Find the max X point and it's y value
maxX = col max(:height);
maxXyvalue = :weight[(dt << get rows where(:height==maxX))[1]];
minX = col min(:height);
minXyvalue = :weight[(dt << get rows where(:height==minX))[1]];
maxY = col max(:weight);
maxYxvalue = :Height[(dt << get rows where(:weight==maxY))[1]];
minY = col min(:weight);
minYxvalue = :Height[(dt << get rows where(:weight==minY))[1]];
polygon((maxX||minX||minYxvalue||maxYxvalue)`, (maxXyvalue || minXyvalue || minY ||maxY)` );
);
