我正在寻找一种关于确定3D中点是否位于三角形内部的方法的认可。
给定形式为R(t)= e + td的射线以及一组三个点T = {V0,V1,V2}的三个维,它们在三个维度上形成三角形,我知道如何找到平面的参数方程,三个点组成,以及如何确定射线是否与该平面相交。最后,如果相交,我想知道相交点是否实际上在三角形边缘的边界内。
请在下面查看我的图片。
我在想的是,我可以计算出每个边缘向量与从边缘向量中的第一个边缘到该点的向量之间的点积,并检查它们是否均为正。像这样:
在这种情况下,该点应在三角形内。对?这种确定计算机图形背面的方法不是吗?
我发现很难理解局部和全局未命中率之间的差异以及如何计算内存访问的平均时间,我只想举一个我试图解决的问题的例子。如果有人能告诉我我是否在正确的轨道上,或者我是否错了我错过的东西,我将不胜感激。
考虑以下多级缓存层次结构及其寻道时间和未命中率:
在这种情况下,给出的寻道时间是指检查请求的数据在当前层次结构上是否可用,并将数据传输到上层(或 CPU)所需的总时间。这和命中时间一样吧?给出的未命中率是本地的。正如我所理解的,一个级别的未命中率需要乘以所有先前级别的未命中率才能对该级别进行正确处理。
假设我们有 1000 次内存访问,在 L1 中,其中 20% 会丢失。因此,其中 20% 将进入 L2,其中 5% 将错过。因此,从 1000 次内存访问中,1000 * 20% * 5% 将到达那里。现在,据我所知......如果我错了,请纠正我,上述未命中率是局部的,但它们的乘积是每个相应级别的全局未命中率。这意味着 L2 的全局未命中率为 0,2*0,05 = 1%。
现在,我可能对这个计算非常错误,但这就是我的想法:
AMAT (Average Memory Access Time) = Hit time + Miss rate * Miss penalty
AMAT = 0.5 + 0.2 * (1.8 + 0.2 * 0.05 * (4.2 + 0.2 * 0.05 * 0.015 * 70))
Run Code Online (Sandbox Code Playgroud)
计算后我得到 AMAT = 0.868421 ns …
memory performance computer-science cpu-architecture cpu-cache