如何在 JMP 中執行多邊形向外偏移大家好,
我想問一下,JMP 中是否可以執行多邊形向外偏移?如果可以,請教一下具體操作。
假設我有一個六邊形的座標,我想在六邊形周圍繪製一個距離為 10 的緩衝區。我該怎麼做?
非常感謝
自動化和腳本回覆:如何在 JMP 中執行多邊形向外偏移原始六邊形來自哪裡?
您是使用 JMP Graph Box 製作的嗎?
更具體的細節將非常有幫助
回覆:如何在 JMP 中執行多邊形向外偏移你好@txnelson ,
透過儲存輪廓線,從輪廓圖中取得多邊形

儲存輪廓線後,我繪製了 X 和 Y 軸的圖表。請問如何繪製沿多邊形輪廓線的偏移量?非常感謝。

回覆:如何在 JMP 中執行多邊形向外偏移JMP 提供使用「新增圖形腳本」為任何圖形輸出新增附加圖形的功能。腳本索引提供如何新增附加物件的文件和範例。
幫助=>腳本索引
JSL 中提供了一整套圖形基元。
以下是直接從腳本指南中取得的簡單範例,用於說明此功能
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] );
);

回覆:如何在 JMP 中執行多邊形向外偏移你好@txnelson
就像你的圖表一樣,我們手動將數字放入圖形中繪製多邊形。有什麼辦法可以透過腳本來實現嗎?例如,
我們得到了 X 和 Y 座標的列表,並且有一個距離。我該如何透過腳本進行計算?
另外,我還想問一個問題,當我繪製輪廓圖並儲存輪廓時,JMP會產生帶有X和Y座標的表格。
我遇到的問題在於,當我使用諸如 In Polygon (a,b, x matrix, y matrix) 之類的語法時,它傳回的結果不正確。即使有些點在多邊形內部,JMP 也會將這些點回到多邊形外部。
在使用 In Polygon 之前,我需要執行排序或處理資料嗎?
謝謝
回覆:如何在 JMP 中執行多邊形向外偏移您是否嘗試過繪製所得到的多邊形並且它看起來是否像您所期望的那樣?
回覆:如何在 JMP 中執行多邊形向外偏移我認為,當您說「我們手動將數字放入圖表」時,您是在暗示 JSL 是針對特定多邊形「硬編碼」的。沒錯,但這並不意味著它必須硬編碼。 JSL 是一種完整的腳本語言。定義您想要產生的任何多邊形的數值都可以使用 JSL 計算,然後在 Polygon() 函數中使用它來繪製您想要顯示的多邊形。我懷疑,如果您想要繪製一個圍繞要顯示的點 10 個單位的多邊形,那麼您可能需要循環遍歷所有值,計算從所有 x,y 值的平均值到特定點的距離,然後將該距離加 10 個單位,然後計算該值的 x,y 點。諸如此類。但這在 JSL 中都是可以實現的。下面是一個簡單的範例,示範如何繪製一個包含最大 x 和 y 點的多邊形。
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)` );
);
