计算机图形算法
巅峰白杨
用C#开发渲染引擎,用js开发Threejs应用(-、-)
展开
-
一组相邻多边形融合成一个多边形的算法思路
思路:1.获取所有多边形的边2.对所有边以是否共线进行分组3.每组共线的边删除边重复的部分保留剩余部分4.将剩余的所有边重新组合重一个或多个多边形优化思路:_1.共线分组时新进入的边需要调整到X从左到右或者Y从下到上(垂直的时候)并进行一次根据开始点X值或者Y值(垂直)的排序()这样在删除重复边这一步就可以轻松的用边端点X或者Y的顺序进行计算保留剩余部分)_2.分组...原创 2020-01-08 17:39:37 · 4535 阅读 · 0 评论 -
判断二维平面上点是否在不规则多边形内部算法思路
思路:做从点出发垂直于x轴的向下的射线,射线于多边形的交点个数为奇数则在内部,偶数则在外部特殊情况:多边形中存在与点的射线重合的边,需要判断该条边前后两条边是否相对于该边是同一侧,若是同一侧,则认为点射线与该边没有交点,如果不同侧则认为射线与该边有一个交点。原理:该算法原理是二维图形内部的点向任意方向的射线总是穿过二维图形奇数次。...原创 2019-07-26 10:05:35 · 539 阅读 · 0 评论 -
判断二维多边形点的顺序是否为逆时针思路
思路:遍历多边形中所有的点,取x最大的点,求出该点与其前后两点的两个线段,根据线段的向量即可判断出多边形的顺序。遇到的错误:因为有的时候传进来的首尾点相同(闭合),如果首个点就是x最大,前一个点就是自己,这样算法就会出错,所以进行判断前必须删除首位重合的点再进行判断...原创 2019-07-26 10:49:03 · 810 阅读 · 0 评论 -
三维场景坐标系转换
假设已存在一个世界坐标系,如果以新点()作为新的坐标系CoordNew的原点OriginNew,以向量 XAxis,YAxis,ZAxis作为CoordNew的X,Y,Z轴.此时有点, 假设在CoordNew坐标系中坐标为,就有矩阵[(XAxis,0)T,(YAxis,0)T,(ZAxis,0)T,(,1)T]*T=T...原创 2019-07-26 11:52:16 · 961 阅读 · 0 评论