【算法】计算机图形学的一些经典小题:判断点在多边形内,随机生成三角形内的点,判断两个矩形是否相交等

本文总结了计算机图形学中的一些经典小题,包括如何判断点是否在多边形内(凸多边形和任意多边形)、随机生成三角形内的点、判断圆形和矩形是否相交以及两个矩形是否相交并求相交部分面积。涉及到的算法包括叉积法、射线法、坐标轴变换等,并探讨了常见的易错点和解决方案。
摘要由CSDN通过智能技术生成

前几天面试的时候被问到了,如何随机在三角形内生成点,我按照我的想法回答了一遍,但觉得回答的不够好。最后面试官说了一个最优的方法。觉得不错,顺带总结一下最近看到的一些关于计算机图形学方面的经典小题,知乎上看到的还有Leetcode上的

1.判断一个点是否在多边形内

首先先说一下输入的内容,多边形的顶点是一个数组输入进来,其中每个相邻点之间对应着多边形上有边相连

POINT p1 = ptPolygon[i];
POINT p2 = ptPolygon[(i + 1) % nCount];

即上面两个点之间存在边相连

判断是否在凸多边形内部

这个方法我记得是在编程之美上看到的,即计算该点与多边形点之间向量的叉积,如果叉积同向则说明在内部,如果有反向则说明在外部。
这里写图片描述
比如上面这个图,分别计算 PA,PB 的叉积 PB,PC 的叉积 PC,

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值