Ottieni le coordinate di Translated Polygon
Dec 10 2020
Ho molti poligoni della seguente forma che desidero eseguire elaborazioni e analisi più complicate in base alla sua posizione aggiornata (come le relazioni tra le geometrie).
Translate[Polygon[{{0, 0}, {0, 50}, {100, 50}, {100, 0}}], {954, 840}]
Pensavo di aver trovato la mia soluzione su come recuperare le coordinate di una traduzione Polygonda un thread precedente su Points. Tuttavia, quando ho provato ad applicare NormalM12.1, restituisce di nuovo l'espressione.
Normal[Translate[Polygon[{{0, 0}, {0, 50}, {100, 50}, {100, 0}}], {954, 840}]]
Ho provato alcuni modi più complicati per estrarre le coordinate da un Graphicsoggetto senza alcun risultato. Qualcuno ha qualche suggerimento su come recuperare le Polygonsestensioni aggiornate?
Risposte
1 kglr Dec 10 2020 at 11:12
translateToNormal[t_Translate] := TranslationTransform[#2] /@ # & @@ t
tp = Translate[Polygon[{{0, 0}, {0, 50}, {100, 50}, {100, 0}}], {954, 840}]
translateToNormal[tp]
Polygon[{{954, 840}, {954, 890}, {1054, 890}, {1054, 840}}]
In alternativa,
translateToNormal2 = # /. Translate -> (TranslationTransform[#2] /@ # &) &;
translateToNormal2 @ tp
Polygon[{{954, 840}, {954, 890}, {1054, 890}, {1054, 840}}]
Graphics[{FaceForm[], EdgeForm[{AbsoluteThickness[10], Red}], translateToNormal[tp],
EdgeForm[{Thin, Black}], tp}]
Per ottenere le coordinate:
normalCoords[t_Translate] := TranslationTransform[#2] @ #[[1]] & @@ t
normalCoords[tp]
{{954, 840}, {954, 890}, {1054, 890}, {1054, 840}}