案例:
文档与演示(国内镜像)网速快
文档与演示(github)
点与其他元素的距离https://dcgraph.gitee.io/xtorcga/guide/distPointAll.html
线与其他元素的距离https://dcgraph.gitee.io/xtorcga/guide/distLineAll.html
射线与其他元素的距离https://dcgraph.gitee.io/xtorcga/guide/distRayAll.html
线段与其他元素的距离https://dcgraph.gitee.io/xtorcga/guide/distSegmentAll.html
常用https://yszhao91.github.io/xtorcga/guide/%E5%B8%B8%E7%94%A8.html
使用全部引用;:import*ascgafrom"xtorcga";functionrandomV3(){returncga.v3(Math.random()*100-50,Math.random()*100,Math.random()*100-50);}varpoint=newcga.Point().copy(randomV3());varseg=newcga.Segment(randomV3(),randomV3());varresult=point.distanceSegment(seg);按需求引用:import{v3,Point,Segment}from"xtorcga";functionrandomV3(){returnv3(Math.random()*100-50,Math.random()*100,Math.random()*100-50);}varpoint=newPoint().copy(randomV3());varseg=newSegment(randomV3(),randomV3());varresult=point.distanceSegment(seg);网页嵌入:直接下载使用build目录下面的cga.js,包含到项目中<scriptsrc="cga.js"/>或者<scriptsrc="https://raw.githack.com/yszhao91/xtorcga/master/build/cga.js"/><script>varpoint=newcga.Point(1,2,3);varline=newcga.Line(newcga.Vector3(10,10,20),newcga.Vector3(20,15,10));varresult=point.distanceLine(line);</script>项目编译npminstall国内cnpminstallnpmrunbuild//编译到build目录下npmrundev//运行项目,自己更改源码测试对象的类名点:Point直线:Line射线:Ray线段:Segment圆圈:Circle平面:Plane三角形:Triangle矩形:Rectangle圆盘:Disk球体:Sphere胶囊体: Capsule包围盒:Box已经实现算法在同一平面点集的凸包已完成
varconvexHull=newConvexHull(points,{planeNormal:cga.Vector3.UnitZ});varhull=convexHull.hull;3d凸包进行中
同一平面点集delauny三角网构建进行中
3d点集delauny四面体构建进行中
同一平面voronoi图构建进行中
3dvoronoi图构建进行中
最近点对问题点集合中最近找出距离最近的一对点算法时间O(nlogn)
进行中
折线或者路径简化折线或者路径中过密或者过直的点去除;(2020年1月17增加)/***简化点集数组,折线,路径*@param{*}points点集数组,折线,路径,继承Array*@param{*}maxDistance简化最大距离默认值0.1*@param{*}maxAngle简化最大角度弧度默认值Math.PI/180*5*/simplifyPointList(points,maxDistance,maxAngle);距离一级目录与二级目录存在相应距离算法关系
PointPointLineRaySegmentCirclePlaneTriangleRectangleDiskSphereCapsuleLineLineRaySegmentTriangle(2020年1月17增加)RayRaySegmentTriangle(2020年1月17增加)SegmentSegment相交相交可以使用距离算法来实现,准确的说距离中的closets最近点在distance为0(小于1e-4,精度可以自定义)的时候也就是交点,parameters表为0或1可以判断为端点相交
偏移Segment切割SegmentSegmentPlaneSegmentTriangle参考文章计算机几何算法(CGA)专栏https://zhuanlan.zhihu.com/c_1196384168014368768
评论