Math 线段透视投影

Math 线段透视投影,math,graphics,3d,geometry,perspective,Math,Graphics,3d,Geometry,Perspective,当我在2d屏幕上投射3d点时,我使用 if( z > 1.0 ) { screen_x = (x/z)*500; screen_y = (y/z)*500; } 这是我可以扔掉所有的“后方”点和 衡量前沿点 但现在我需要将线段投射/投影到 二维点然后我可以把它画成二维线 在某些情况下,线段的一个点是 在前面的空间,但在后面的空间其他-如何铸造 后面的空间点,这样我就可以把它画成二维

当我在2d屏幕上投射3d点时,我使用

    if( z > 1.0 )                   
     {
      screen_x = (x/z)*500;         
      screen_y = (y/z)*500;
     }
这是我可以扔掉所有的“后方”点和 衡量前沿点

但现在我需要将线段投射/投影到 二维点然后我可以把它画成二维线

在某些情况下,线段的一个点是 在前面的空间,但在后面的空间其他-如何铸造 后面的空间点,这样我就可以把它画成二维线了


答案有很多tnx

这将满足您的要求:

screen_x = (x/(|z|+1.0))*500;         
screen_y = (y/(|z|+1.0))*500;

这将满足您的要求:

screen_x = (x/(|z|+1.0))*500;         
screen_y = (y/(|z|+1.0))*500;

你希望屏幕上的线条笔直吗?屏幕上的笔直是什么意思?我想用线、线制作3d,用透视投影,你想把3d线段投影成2D。您希望在高z处将广泛分离的点投影到相邻的点。你还有其他要求吗?比如你想让线段映射到线段?我问这个问题是因为我不想提交一个答案,然后发现它不是你想要的。我不明白这个问题-我只想把三维线段(x,y,z)-(x2,y2,z2)转换成二维线段(x,y)-(x2,y2)我可以在屏幕上画出来。你想让这条线在屏幕上笔直吗?屏幕上的笔直是什么意思?我想用线、线制作3d,用透视投影,你想把3d线段投影成2D。您希望在高z处将广泛分离的点投影到相邻的点。你还有其他要求吗?比如你想让线段映射到线段?我问这个问题是因为我不想提交一个答案,然后发现它不是你想要的。我不明白这个问题-我只想把三维线段(x,y,z)-(x2,y2,z2)转换成二维线段(x,y)-(x2,y2)我可以在屏幕上画图哦,很好,如果它能工作,我不确定,必须检查。。不,如果(z>什么)或类似的东西?好吧,很好,如果它能工作,我不确定,必须检查。。如果(z>什么东西)或者类似的东西,那么没有?