[英]c# get object's 2d plot points from 3d position, unit vectors, and dimensions
我有 xml 數據,它是來自 3D CAD 系統的 output。
我需要獲取 xml 數據並從中構建 2d plot 點。
簡而言之,給定 3d position、單位向量和 object 的維度,我需要從平面生成 2d plot 點,在我的例子中是從立面“前”視圖和底部視圖。
我正在尋求幫助或指出正確的方向,了解如何獲取 3d 全局 position 值、單位向量和形狀尺寸,並為形狀、矩形、多邊形等生成 2d plot 點。
這是對我的整個場景的解釋,以便更好地理解它的實際應用,但我並不打算讓你們所有人為我做我的工作,只是希望得到一些指導。
牆內有 9 個立柱的牆體框架布局。
框架的每一塊都被設計成一個部分。
每個部分由框架容器內部的以下 xml 表示,在本例中為牆板:
在這個例子中,我們有一塊木頭(標准 2x4)
因此,我需要以某種方式從中構建 2d 點,它們代表垂直立在牆上的 2x4 立柱的立面圖。
<panel item_id="1E1" use="WALLPANEL" type="7" quantity="1" flength="120" fheight="97.1" fthick="3.5" length="120" height="97.1" thick="3.5">
<position>
<x x="1.000000000000" y="0.000000000000" z="0.000000000000" />
<y x="0.000000000000" y="0.000000000000" z="1.000000000000" />
<z x="0.000000000000" y="-1.000000000000" z="0.000000000000" />
<p x="60.000000000000" y="-1.750000000000" z="0.000000000000" />
</position>
<struct type="wall" use="EXT">
<route>
<line type="line">
<start x="60.000000000000" y="0.000000000000" z="-1.750000000000" />
<end x="-60.000000000000" y="0.000000000000" z="-1.750000000000" />
</line>
</route>
<layer order="0" use="FRAMING" mater="FRAME-4">
<top_pleq a="0.000000000000" b="0.000000000000" c="1.000000000000" d="0.000000000000" />
<bottom_pleq a="0.000000000000" b="0.000000000000" c="-1.000000000000" d="-3.500000000000" />
<part type="piece" item_id="A" use="STUD" sect_code="2x4 S" nom_width=" 1.5000" nom_height=" 3.5000" mater="LUMBER" shape="RECT" length="92.625000">
<position>
<x x="1.000000000000" y="0.000000000000" z="0.000000000000" />
<y x="0.000000000000" y="0.000000000000" z="1.000000000000" />
<z x="0.000000000000" y="-1.000000000000" z="0.000000000000" />
<p x="52.000000000000" y="94.125000000000" z="-1.750000000000" />
</position>
我的 2d 結果將是代表 2x4 塊的 2d 點數組。
struct point2D {
float x {get;set;}
float y {get;set;
}
point2D[] points2d = ......etc.
並且,示例片的值將是:
112,1.5
112,95.75
113.5,95.75
113.5, 1.5
感謝大家閱讀本文並感謝您提供的任何幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.