使用Java2D的两个视口
这是一个家庭作业问题,但是对代码或任何东西都没有期望,只是对以下问题的一个想法或提示 我有一组三维世界坐标的立方体,我必须在两个独立的区域(平行和透视)使用两个投影来显示它们。平行进行得很好,没有问题,但是使用透视投影显示同一场景对我来说是个麻烦 从世界到屏幕的坐标看起来是个好主意,但我不知道要将它们应用到哪个坐标上,原始的真实坐标,新的坐标 谢谢你抽出时间使用Java2D的两个视口,java,3d,Java,3d,这是一个家庭作业问题,但是对代码或任何东西都没有期望,只是对以下问题的一个想法或提示 我有一组三维世界坐标的立方体,我必须在两个独立的区域(平行和透视)使用两个投影来显示它们。平行进行得很好,没有问题,但是使用透视投影显示同一场景对我来说是个麻烦 从世界到屏幕的坐标看起来是个好主意,但我不知道要将它们应用到哪个坐标上,原始的真实坐标,新的坐标 谢谢你抽出时间 PS:我们只允许使用Java2D Api。要执行透视投影,您还需要两件事情:透视点(眼睛所在的位置)和投影平面。通过平行投影,透视点/眼睛
PS:我们只允许使用Java2D Api。要执行透视投影,您还需要两件事情:透视点(眼睛所在的位置)和投影平面。通过平行投影,透视点/眼睛和平面可以与对象(例如立方体)保持任意距离。但是透视投影要复杂一些 一旦你建立了你的眼睛和投影平面,你将需要迭代你的立方体。理想情况下,您可以从最远的立方体到眼睛再到最近的立方体进行迭代-这样,较近的立方体将覆盖较远的立方体 对于每个立方体,确定每个点与眼睛的距离。然后,对于每个面(再次按距离递减的顺序),计算每个顶点的投影点。可以跳过具有遮挡点的面(每个立方体的最远顶点) 要计算特定顶点的投影点,需要在投影平面上找到该点。该点是从眼睛到顶点的直线与投影平面相交的位置。这需要一些数学知识,但不应该太难