资源描述:
《IDL中几何图形的数学运算函数.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、IDL中几何图形的数学运算函数几何形状,分为点、线、多边形(面)、体几类,利用IDL对这些形状的几何运算,大致分下面几个部分。1、点集运算点与点之间求距离:DISTANCE_MEASURE(IDL自带)2、线相关计算点到直线的距离PNT_LINE(IDL自带)或CalDistancePtoLine.pro计算两直线的交点CAL2LINESINTERSECTPOINT.pro线段与坐标轴的夹角(数学坐标系)cal2pointsangle.pro3、多边形相关(面)求多边形面积:poly_area、(IDLanROI)->ComputeGeometry,area=result(IDL自带)
2、求多边形周长:(IDLanROI)->ComputeGeometry,PERIMETER=result(IDL自带)点坐标是否在多边形范围内:(IDLanROI)->ContainsPoints(IDL自带)三点求通过该系列三个点的圆心坐标和圆半径;CIR_3PNT(IDL自带)多边形与曲面交集:MESH_CLIP(IDL自带)两个多边形合并:MESH_MERGE(IDL自带)多边形是否空间闭合:MESH_ISSOLID(IDL自带)多边形包含的三角形个数:MESH_NUMTRIANGLES(IDL自带)复杂多边形正确显示:IDLgrTessellator(IDL自带)求两个平面的夹角
3、cal2planeangle.pro四面体与平面相交:TETRA_CLIP(IDL自带)4、体相关体数据任意方向切面:EXTRACT_SLICE(IDL自带)重点推荐MESH_OBJ,可以创建三角形、矩形、圆锥、圆柱、任意多边形旋转等。;Mesh_Obj,2,Vertex_List,Polygon_List,$;调用格式;Mesh_Obj,Type,Vertex_List,Polygon_List,$;Array1[,Array2][,/CLOSED][,/DEGREES],$;[P1,P2,P3,P4,P5=value];Type=6创建旋转后模型的点坐标及连接关系;Vertex_L
4、ist创建后的点坐标集;Polygon_List旋转模型的点连接关系;Array1创建旋转模型的起始数据集;Array2'Type为6'时不支持;/Closed旋转后模型闭合;/DEGREES旋转的输入参数为角度,默认是弧度;P1-旋转后的边数;P2-旋转的中心点;P3-旋转的方向[0,0,1];P4-旋转起始角度;P5-旋转结束角度附提到的系列源码:CODE:;≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌;;计算两个点的距离;WriteByDYQ;可用distance_measure函数替代;functionCalDistance,point1,point
5、2compile_optidl2;Return,SQRT((point1[0]-point2[0])^2+(point1[1]-point2[1])^2+(point1[2]-point2[2])^2)end;≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌;WriteByZML;计算点到直线的距离;s=SQRT(p*(p-a)*(p-b)*(p-c)){p=(a+b+c)/2};ModifiedByDYQ;functionCalDistancePtoLine,point0,linePos1,linePos2a=CalDistance(point0,linePo
6、s1)b=CalDistance(point0,linePos2);SQRT((point[0]-linePos2[0])^2+(point[1]-linePos2[1])^2)c=CalDistance(linePos1,linePos2);SQRT((linePos2[0]-linePos1[0])^2+(linePos2[1]-linePos1[1])^2)p=(a+b+c)*0.5s=SQRT(p*(p-a)*(p-b)*(p-c))Return,s*2/cendCODE:;≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌;;求集合的并集;copyFro
7、mDAVID'sCode^_^;FUNCTIONSETUNION,a,b;COMPILE_OPTStrictArrIFN_ELEMENTS(a)EQ0THENRETURN,b;AunionNULL=aIFN_ELEMENTS(b)EQ0THENRETURN,a;BunionNULL=bRETURN,WHERE(HISTOGRAM([a,b],OMin=omin))+omin;ReturncombinedsetEND;≌≌≌≌≌≌≌≌≌≌≌≌≌≌