Home › Forums › GAMES在线课程(现代计算机图形学入门)讨论区 › 作业三框架中insideTriangle函数的问题 Tagged: 作业三 This topic has 3 replies, 4 voices, and was last updated 1 year, 7 months ago by Krouze. Viewing 3 reply threads Author Posts 2021年10月4日 at 下午9:38 #9455 Score: 0 huhfairyParticipant 因为f0由三角形两点叉乘得来,所以f0是垂直于xOy平面的。 而p在xOy平面中,那if语句中的p.dot(f0)不应该为0吗?f1、f2同理。 没搞明白这个函数是怎么起作用的,求大佬解答。 Attachments:You must be logged in to view attached files. 2021年10月14日 at 上午10:45 #9509 Score: 0 米莱拉多Participant 注意所有的z = 1 2022年1月30日 at 下午3:59 #10524 Score: 0 CatigerParticipant 纠结了这个一段时间,在这里写下理解,首先这个应该明确各个参数意义 z=1这个的意义是先限制三个顶点跟p点一个平面 这里先让v[i]为ABC三个点 在这里我们把ABC还有原点连起来,形成一个锥体 因为叉乘是算出两向量组成平面的垂直向量。点跟向量叉乘可以把点理解成原点O跟这个点形成的向量跟另一个向量组成的平面的垂直向量。 那么很明显了,只要把点限制在这个锥体内,且z相同,即在三角形里面。 而限制在这个锥体的方法就是通过判断点在锥体表面的左边还是右边,因为锥体有四个面,其中z已经=1,所以这里 只需要判断OP跟OA是否在BOC的同一边,且OP跟OB是否在AOC的同一边,OP跟OC是否在BOC的同一边就可以了(最后一段代码就是这个意思)。 那么怎么判断呢,跟一个平面的垂直向量点乘获得cos值就行了,cos都是正的或者负的相乘的结果就是正的即大于0,即同向。 总结就是二维空间判断的是点跟边的同向,三维空间判断的是边跟面的同向 2023年5月11日 at 下午9:34 #16576 Score: 0 KrouzeParticipant 感谢楼上大佬的讲解!我在这疑惑了好久! 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