几何模板函数
本帖最后由 tzbm123456 于 2015-6-10 00:10 编辑一、几何实体类型 1、点;2、线;3面;4、体二、几何实体表达方式 1、点: point=Geom::Point3d.new(x,y,z); 2、线: line=; 实际 line=; 抽象 3、面: plane=; 抽象 plane=;实际 plane=; 4、体 圆柱体:volume=; line= diam=直径 方柱体:volume=; line= plane= 任意形体:volume=; plane=三、几何实体关系(既有考虑实际几何实体,又要考虑抽象几何实体) 1、点与点 2、点与线(点与实际线7种关系,与抽象线有2种关系) 3、点与面(点与实际面6种关系,与抽象面有2种关系) 4、点与体(点与实际圆柱体8种关系, 点与实际方柱体12种关系, 点与实际任意形体5种关系) 5、线与线 6、线与面 7、线与体 8、面与面 9、面与体 10、体与体四、点与点的关系1、点实体表达式:tzbm_Point=2、函数名称:Module_Point::point_And_Point(tzbm_Point1, tzbm_Point2)3、返回值1)tzbm_Point1与tzbm_Point2相交,返回值为0;2)tzbm_Point1包含tzbm_Point2,返回值为1;3)tzbm_Point1包含于tzbm_Point2,返回值为2;4)tzbm_Point1与tzbm_Point2分离,返回值为3;五、点与线的关系1、点实体表达式:point=Geom::Point3d线实体表达式:tzbm_Line=2、函数名称:Module_Point::point_And_Line(point, tzbm_Line)3、返回值1)point在tzbm_Line实体上,返回值为0;2)point为tzbm_Line左端点,返回值为1;3)point为tzbm_Line右端点,返回值为2;4)point与tzbm_Line分离,且在线段的延伸线上,返回值为3;5)point与tzbm_Line分离,且不在线段的延伸线上,返回值为4; 六、点与面的关系1、点实体表达式:point=Geom::Point3d面实体表达式:tzbm_Face=2、函数名称:Module_Point::point_And_Face(point,tzbm_Face)3、返回值1)point在tzbm_Face实体内,返回值为1;2)point为tzbm_Face实体角点上,返回值为2;3)point为tzbm_Face实体边上,返回值为4;4)point为tzbm_Face实体外且在平面上,返回值为8;5)point为tzbm_Face实体外且在不在平面上,返回值为16;七、点与圆柱体的关系1、点实体表达式:point=Geom::Point3d圆柱体表达式:tzbm_CircleColumn=]2、函数名称:Module_Point::point_And_CircleColumn(point,tzbm_Face)3、返回值1)point在tzbm_CircleColumn实体内,返回值为0;2)point在tzbm_CircleColumn实体表面上,返回值为1;3)point在tzbm_CircleColumn实体外,返回值为16;
本帖最后由 tzbm123456 于 2015-6-9 20:33 编辑
1、Module_Point::points4_interSect?(pt1,pt2,point1,point2) 已知两直线段的4点,判断两直线段是否相交(已调试)2、Module_Point::points4_onPlane?(point1,point2,point3,point4) 已知4点,判断4点是否共面true/false(已调试)3、Module_Point::points4_radius2_interSect?(pt1Start,pt1End,pt2Start,pt2End,radius_line1,radius_line2) 已知两直线段的端点,以及对应的半径,判断两段管状实体是否相交(未调试)4、Module_PointLine::line_point_online?( entline,point,dist_point_line) 已知直线段、点何直线对应的半径,判断点是否在直线对应的管状实体内true/false(已调试) 5、Module_Line::line_line_interSect?(entline1,entline2) 已知两直线段,判断两段直线是否相交(已调试)6、Module_Line::line_line_onPlane? (entline1,entline2) 已知两直线段,判断是否共面 (已调试)7、Module_Line::line2_radius2_interSect?(entline1,entline2,radius1,radius2) 已知两直线段和对应的半径,判断两段管状实体是否相交(已调试)8、Module_LineFace::face_line_interSect?(entface,entline,dist_line_face) 9、Module_Geom::point3_Area(point1,point2,point3) 已知三点求面积>10、Module_Geom::point3_Volume(point1,point2,point3) 求三点中计算至最低水平面的体积,返回[体积,底面积,底平面]>
11、Module_Geom::point_onEdge?(point,point1,point2) 判断point是否在point1到point2的edge内12、Module_Geom::point_onFace?(point,entface) 判断point是否在face内>13、Module_Geom::point_InPipe?(point,pipeStartPoint,pipeEndPoint,pipeRadius) 判断point是否在管状edge内14、Module_Geom::point_InFace?(point,entface,faceDepth) 判断point是否在柱状face内15、Module_Geom::edge2_Intersect?(edge1,edge2) 判断edge与edge是否相交 16、Module_Geom::createSphere(center,radius)已知球心坐标,和半径,绘制球体 #<8功能:判断edge与face是否相交>#<9功能:判断edge与管状edge是否相交>#<10功能:判断edge与柱状face是否相交>#<11功能:判断face与face是否相交>#<12功能:判断face与管状edge是否相交>#<13功能:判断face与柱状face是否相交>#<14功能:判断管状edge与管状edge是否相交>#<14功能:判断管状edge与柱状face是否相交>#<15功能:判断柱状face与柱状face是否相交>
页:
[1]