CAD开发中的坐标计算

(1)将屏幕像素坐标转为空间坐标的过程,在该过程中需要考虑到以下情形
①特殊点的捕捉
1)包括闭合边或线框的中心点。
2)椭圆、圆弧、圆中心点捕捉。
3)边中点、三等分点、四等分点捕捉。
4)面中心点捕捉。
5)椭圆、圆弧、圆象限点捕捉。
6)边交点捕捉。
7)边和面交点捕捉。
②坐标平面网格点。
③极轴捕捉。边上点。
④面上点。
⑤坐标平面任意点。
⑥上下文。
1)创建标准模型时,第一个关键点能够确定这个标准模型的初始坐标系。
2)如果第一个关键点在当前坐标系平面上,则初始坐标系即当前坐标系。
3)如果第一个关键点在一个平面上,则初始坐标系根据该关键点和该平面法线确定。
4)如果第一个关键点不属于上述两种情况,则根据当前点在当前坐标系Z方向的坐标和当前坐标系其额定初始坐标系。
⑦引导线捕捉。经过以上不同情形得到坐标后,如果坐标点在X、Y、Z方向和特殊点接近,则坐标点X、Y、Z方向修改为特殊的X、Y、Z值。
⑧选择面上一点有三种方式, 一种是根据像素坐标、当前观察方向确定的射线和曲面相交得到的交点,并得到曲面上该点的参数坐标;一种是根据像素坐标计算当前三维坐标,再将三维坐标投影到曲面上,得到去面过上的点和该点的参数坐标;一种是根据OCC拾取机制得到坐标点,并通过坐标点反求该点的参数坐标。现在存在的一个小问题是,在面上移动时,容易捕捉到面中心点,但是将这个中心点转为像素点,将像素点坐标传给方法一时,得到的坐标和捕捉到的面中心点容易出现差别。可是如果把捕捉到的面中心点传给方法二时,容易出现中心点投影到曲面失败导致无法计算除坐标问题。