AstaTus
-- 夏天不热。。
posts - 22,comments - 12,trackbacks - 0
问题背景:
         很早就觉得数学很重要,但斌没有静下心来好好看~ 最近重写都D3D框架的结构,打算从基础类一个个写起。。
   今天写到射线的相交,在射线与平面相交的判断上,由于射线的的单方向性,所以可能存在射线的反向延长线和平
   面相交,但是正真的射线没  有  和平面相交,所以设:
      平面的单位法向量:N,;
      射线的起始点:Origin
      射线的方向:Dir

      如果Dir,N的点积为正 且Origin在平面的背面,或Origin在平面的正面,且Dir,N的点积为负,则他们相交
      其他情况则不想交
      但关键是Origin在平面的哪一面该怎么算呢?下面来小证一下

证明:
      N,Origin,Dir均为矢量,其他为标量
  平面方程为 N(x, y, z) = D;
      射线方程为 P(t) = Origin + Dir*t;

      N为平面的单位法向量,  
      求N与Origin的点积
      N•Origin = |N| * |Origin|cosF
      因为N为单位向量 则求出来的值为Origin向量在N上的投影且有方向
      (这个有向长度相于当该平面经过原点时的有向长度,既D为0时),(D的几何意义是平面到原点的有向距离,
       既D为负则 原点在平面背面,反之在反面)
      所以N•Origin + D为最后Origin在正真的有偏移的N上的投影的有向长度,为负则在背
      面,为正则在正面
      貌似讲的不怎么清楚 -_- ~~~
posted on 2009-02-25 21:01 AstaTus 阅读(532) 评论(0)  编辑 收藏 引用 所属分类: 3D Math

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理