實(shí)體編程過(guò)程中,經(jīng)常會(huì)遇到鏡像操作,如果采用三維幾何變換,涉及構(gòu)造復(fù)雜的變換矩陣,對(duì)于鏡像操作來(lái)說(shuō),得不償失,在Bentley.GeometryNET.dll中的結(jié)構(gòu)體DTransform3d下有TryMirrorPointToPoint鏡像方法,方法參數(shù)如下:
public struct DTransform3d
{
public static bool TryMirrorPointToPoint(DPoint3d point0, DPoint3d point1, out DTransform3d result);
}
該方法傳入兩個(gè)點(diǎn),輸出一個(gè)變換矩陣。
在中國(guó)優(yōu)先社區(qū)下,查找該方法參數(shù)的含義,point0為鏡像平面上的任意一個(gè)點(diǎn),point1為鏡像平面法向量上的點(diǎn),

image.png
現(xiàn)要獲得元素A關(guān)于過(guò)點(diǎn)P垂直于XOZ的平面鏡像的元素A1

image.png
測(cè)試結(jié)果:按照上述參數(shù)給定point0,point1,顯然不能達(dá)到要求,因此該參數(shù)含義失效。
正確方式:給定P0,P1,關(guān)于鏡像平面對(duì)稱即可。

image.png
特別提示:如P0(3,0,0),P1(7,0,0),需要注意ORD中單位為m,Microstation中單位為Uor,需要將這些點(diǎn)轉(zhuǎn)換成Uor坐標(biāo),以免造成這些元素總關(guān)于原點(diǎn)對(duì)稱。
如:輸入米制坐標(biāo)P0(3,0,0,),P1(7,0,0)和Uor坐標(biāo)P0(3uor,0,0),P1(7uor,0,0)二者相差Uor倍,米制坐標(biāo)在原點(diǎn)附近,而Uor坐標(biāo)在實(shí)際位置,因此大致關(guān)于原點(diǎn)坐標(biāo)對(duì)稱。