Home › Forums › GAMES在线课程(现代计算机图形学入门)讨论区 › 关于作业2判断三角形的问题 Tagged: no This topic has 12 replies, 8 voices, and was last updated 4 years, 10 months ago by Bear. Viewing 3 reply threads Author Posts 2020年3月4日 at 下午12:53 #3241 Score: 0 bc13900Participant 三角形ABC和点P,默认按一种方向(顺时针逆时针都可以),分别表示向量AB和AP、BC和BP、CA和CP,然后把他们按这个顺序分别做叉乘得到向量v1、v2、v3,再把v1、v2、v3两两点乘,只要点乘结果同时>0,那就证明P在三角形内,请问我这种思路有问题么? 2020年3月4日 at 下午2:22 #3243 Score: 0 左趋趋Participant Karma: 4 pts 没问题,还有可能同时小于0。 等于零的时候,也有很多细节性的规定。 2020年3月4日 at 下午3:29 #3249 Score: 0 SuperstarimageParticipant 对,可以这样考虑,要想保证点在三角形,需要满足三个叉乘结果(可以只考虑二维的)同正或同负即可,这样就能保证叉乘得到的三个新向量是同向的了。同时对于为0的情况也需要考虑,我是将这种情况当成边界点处理了。 2020年3月4日 at 下午5:49 #3260 Score: 0 bc13900Participant 我是这么算的,但是不知道为什么我的static bool insideTriangle()结果总是false导致进不去光删化的循环 2020年3月4日 at 下午5:55 #3261 Score: 0 戴皓天Participant Karma: 9 pts 其实最后不用两两点乘,你直接判断它们的z值是不是同时大于0或者小于0就行了。但是你这样照理说应该是没问题的,要不你分步算,输出一些中间变量到控制台看一下 2020年3月4日 at 下午6:30 #3263 Score: 0 bc13900Participant 你说的对,我改了以后结果出来了,谢谢 2020年3月4日 at 下午10:34 #3278 Score: 0 LexieParticipant 不太理解你说的z值,请问可以说的详细一点吗 2020年3月4日 at 下午10:41 #3279 Score: 0 bc13900Participant 他的意思是叉乘以后得到的还是一个Vector3f的三维向量,而三维向量就有z值,比如v1.z()。叉乘后如果三个新的向量的z值都大于0或小于0,就说明它们共向,点就在三角形内了 2020年3月4日 at 下午10:04 #3271 Score: 0 bc13900Participant 为什么我这个三角形压盖不一样 Attachments:You must be logged in to view attached files. 2020年3月5日 at 上午12:23 #3285 Score: 0 MXangParticipant 我一开始也遇到了这个问题,后来发现是实验一的投影矩阵有bug,只不过当时只有一个三角形不容易发现 2020年3月5日 at 上午12:58 #3287 Score: 0 CurryParticipant Karma: 1 pt 请问你这个问题是怎么解决的呢? 2020年3月6日 at 下午2:10 #3387 Score: 0 BearParticipant Karma: -11 pt t 和 r 算反了吧。。。 2020年3月6日 at 下午2:12 #3388 Score: 0 BearParticipant Karma: -11 pt 回错帖子了。。。 Author Posts Viewing 3 reply threads You must be logged in to reply to this topic. Log In Username: Password: Keep me signed in Log In