点是否在三角形内——来自《编程之美》

问题:
如果在一个二维坐标系中,已知三角形三个点的坐标,那么对于坐标系中的任意一点,如何判断该点是否在三角形内(点在三角形边线上也认为在三角形内)。假设三角形的三个点的坐标为ABC(逆时针顺序),需要判断点D是否在该三角形内。

解法:
如果有一个点D在三角形ABC内,那么沿着三角形的边界逆时针走,点D一定保持在边界的左边,也就是说点D在边AB、BC、CA的左边。于是问题转化成如何去判断一个点P3是在射线P1P2的左边,这其实是个数学问题,通过判断P1P2和P1P3两个向量的叉积的正负来判断。
二维向量的叉积公式:
a(x1,y1),b(x2,y2),则a×b=(x1y2-x2y1)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容