Vector 关于向量、顶点、边、光线、直线和;线段

Vector 关于向量、顶点、边、光线、直线和;线段,vector,line,raytracing,edges,line-segment,Vector,Line,Raytracing,Edges,Line Segment,这只是一个关于光线(和/或线段或边等)及其在软件渲染的3d引擎中的位置(该引擎正在执行/未执行光线跟踪操作)的大型通用问题。我正在学习基础知识,我是第一个承认我对这些东西不太了解的人,所以请友善点。:) 我想知道为什么不使用参数化的线来代替光线(或者它们是???)。我查看了internet上的一些cpp文件,看到一些参考资料定义了一个Ray.cpp对象,一个使用顶点和向量,另一个使用点和向量。我很确定,你可以定义一条只有法线或向量的内插线,然后沿着该线定义相交点,创建一条线段作为该内插线的子集。

这只是一个关于光线(和/或线段或边等)及其在软件渲染的3d引擎中的位置(该引擎正在执行/未执行光线跟踪操作)的大型通用问题。我正在学习基础知识,我是第一个承认我对这些东西不太了解的人,所以请友善点。:)

我想知道为什么不使用参数化的线来代替光线(或者它们是???)。我查看了internet上的一些cpp文件,看到一些参考资料定义了一个Ray.cpp对象,一个使用顶点和向量,另一个使用点和向量。我很确定,你可以定义一条只有法线或向量的内插线,然后沿着该线定义相交点,创建一条线段作为该内插线的子集。目前是否有任何引擎以这种方式实现生产线,或者是否有更好的方法来实现这一点

为了进一步增加复杂性(或简单性?),Wikipedia说,在向量空间中,线段的端点通常是向量,尤其是u->u+v,如果在空间中用向量定义直线,而不是与已定义的内联直线相交,这将非常有意义,但我也找不到这方面的任何实现,这让我怀疑在3d引擎中应用这一点时我的想法的有效性,而在Flash 3d引擎Papervision,我查看了Ray类,它将6个单独的数值作为参数,然后将它们作为2个不同的数字3d(Papervision相当于向量)返回,数据类型

我非常有兴趣看到一个实现,它实际上使用了正确的方法来实现这些低级别的部分,按照它们的真实定义

我很确定你可以定义一条只有法线或向量的内联线

不,你不能。矢量可以定义直线的方向,但所有平行直线共享同一方向,因此要拾取一条,需要使用直线通过的特定点将其固定

线通常以原点+方向*K形式定义,其中K可以取任何实数,因为这种形式对于其他数学很容易。你也可以在线路上使用两点

我很确定你可以定义一条只有法线或向量的内联线

不,你不能。矢量可以定义直线的方向,但所有平行直线共享同一方向,因此要拾取一条,需要使用直线通过的特定点将其固定


线通常以原点+方向*K形式定义,其中K可以取任何实数,因为这种形式对于其他数学很容易。您也可以在这条线上使用两点。

谢谢您的回复:)是的,对不起,我的意思是从一个来源(解释得不太清楚..对不起)。好的,也许如果我陈述我为什么要问这个问题,以立方体的8个顶点为例,如果它们能够沿着它们相交的x,y,z线滑动这些点,这就等同于立方体沿着x,y,z轴滑动,对吗?在您的实现中,这会是相同的思考方式吗?在您的示例中,使“K”为负值会使直线与原点相交吗?很多人不确定我的问题是否正确:)如果你移动图形(如立方体)的所有点(也称为顶点),那么整个图形都会移动。将K设置为任何特定值都不会改变该行。相反,它在直线上拾取一个特定点。直线是由无限多个点组成的集合。在Origin+DirK表示法中,对于直线上的任何给定点P,都有一个特定的K值,使得P=Origin+DirK。反之亦然,把任意给定的K值放到方程中,点就在直线上。啊,好的……是的,我想这就是我的意思。好的,这就创造了沿着直线移动点的能力,假设dir向量是标准化的,“K”是零,我们将在原点位置上,但是这里用三维图形术语定义了什么?一个点,一个顶点,一条线?哈哈哈,这让我很困惑,因为现在我不知道是否会添加另一个点,或者使用相同的dir和新的原点创建一个单独的点(无论是什么),以便将它们连接在一起创建一个边。lol为反馈喝彩:感谢您的回复:)是的,对不起,我的意思是来源(解释得不太清楚..对不起)。好的,也许如果我陈述我为什么要问这个问题,以立方体的8个顶点为例,如果它们能够沿着它们相交的x,y,z线滑动这些点,这就等同于立方体沿着x,y,z轴滑动,对吗?在您的实现中,这会是相同的思考方式吗?在您的示例中,使“K”为负值会使直线与原点相交吗?很多人不确定我的问题是否正确:)如果你移动图形(如立方体)的所有点(也称为顶点),那么整个图形都会移动。将K设置为任何特定值都不会改变该行。相反,它在直线上拾取一个特定点。直线是由无限多个点组成的集合。在Origin+DirK表示法中,对于直线上的任何给定点P,都有一个特定的K值,使得P=Origin+DirK。反之亦然,把任意给定的K值放到方程中,点就在直线上。啊,好的……是的,我想这就是我的意思。好的,这就创造了沿着直线移动点的能力,假设dir向量是标准化的,“K”是零,我们将在原点位置上,但是这里用三维图形术语定义了什么?一个点,一个顶点,一条线?哈哈哈,它把我甩了,因为现在我不知道是否会再增加一个点,或者用同一个dir-an创建一个单独的(不管是什么)