So führen Sie in JMP einen Polygon-Offset nach außen durchHallo zusammen,
Ich möchte fragen, ob wir in JMP einen Polygon-Offset nach außen durchführen können. Wenn ja, könnten Sie mir erklären, wie das geht?
Angenommen, ich habe die Koordinaten eines Sechsecks und möchte eine Pufferzone mit einem Abstand von 10 um das Sechseck zeichnen. Wie kann ich das tun?
Vielen Dank
Automatisierung und SkriptingBetreff: So führen Sie in JMP einen Polygon-Offset nach außen durchWoher kommt das ursprüngliche Sechseck?
Erstellen Sie es mithilfe einer JMP-Grafikbox?
Genauere Angaben sind sehr hilfreich
Betreff: So führen Sie in JMP einen Polygon-Offset nach außen durchHallo @txnelson ,
Das Polygon wird aus dem Konturdiagramm durch Speichern der Kontur erhalten

Nachdem ich die Konturen gespeichert habe, zeichne ich ein X- und Y-Diagramm. Wie kann ich einen Versatz entlang der Polygonkontur zeichnen? Vielen Dank

Betreff: So führen Sie in JMP einen Polygon-Offset nach außen durchJMP bietet die Möglichkeit, jeder Grafikausgabe mithilfe des Skripts „Grafik hinzufügen“ zusätzliche Grafiken hinzuzufügen. Der Skriptindex bietet Dokumentation und Beispiele zum Hinzufügen zusätzlicher Objekte.
Hilfe=>Skripting-Index
In JSL ist ein vollständiger Satz grafischer Grundelemente verfügbar.
Hier ist ein einfaches Beispiel direkt aus dem Scripting Guide, das diese Fähigkeit veranschaulicht
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] );
);

Betreff: So führen Sie in JMP einen Polygon-Offset nach außen durchHallo @txnelson
Wie in Ihrem Diagramm haben wir manuell Zahlen in das Diagramm eingegeben, um ein Polygon zu zeichnen. Gibt es eine Möglichkeit, dies per Skript zu tun? Zum Beispiel:
Wir haben eine Liste mit Koordinaten in X und Y und eine Distanz. Wie kann ich die Berechnung per Skript durchführen?
Darüber hinaus möchte ich noch eine Frage stellen. Wenn ich ein Konturdiagramm zeichne und die Kontur speichere, generiert JMP eine Tabelle mit den Koordinaten X und Y.
Ich hatte das Problem, dass bei Verwendung von Syntax wie „In Polygon (a, b, x-Matrix, y-Matrix)“ falsche Ergebnisse zurückgegeben werden. Selbst einige Punkte liegen innerhalb des Polygons, aber JMP gibt diese Punkte außerhalb des Polygons zurück.
Muss ich vor der Verwendung von In Polygon eine Sortierung oder Datenverarbeitung durchführen?
Danke
Betreff: So führen Sie in JMP einen Polygon-Offset nach außen durchHaben Sie versucht, das Polygon, das Sie erhalten, zu zeichnen, und sieht es Ihren Erwartungen entsprechend aus?
Betreff: So führen Sie in JMP einen Polygon-Offset nach außen durchIch denke, wenn Sie sagen, dass wir Zahlen manuell in das Diagramm einfügen, meinen Sie damit, dass JSL für ein bestimmtes Polygon fest codiert ist. Das stimmt zwar, bedeutet aber nicht, dass es fest codiert sein muss. JSL ist eine vollständige Skriptsprache. Die numerischen Werte, die das zu generierende Polygon definieren, können mit JSL berechnet und dann in der Funktion Polygon() verwendet werden, um das anzuzeigende Polygon zu zeichnen. Ich vermute, wenn Sie ein Polygon mit 10 Einheiten um die anzuzeigenden Punkte zeichnen möchten, müssen Sie wahrscheinlich alle Werte durchlaufen, den Abstand vom Mittelwert aller x/y-Werte zum jeweiligen Punkt berechnen, 10 Einheiten zum Abstand addieren und anschließend den x/y-Punkt dieses Werts berechnen. Oder so ähnlich. Aber all das ist mit JSL möglich. Unten sehen Sie ein einfaches Beispiel für das Zeichnen eines Polygons mit den maximalen x- und y-Punkten.
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)` );
);
