gpt4 book ai didi

c++ - 等距坐标、菱形、瓷砖之间不需要的空间

转载 作者:行者123 更新时间:2023-11-30 05:35:56 35 4
gpt4 key购买 nike

我正在使用 SMFL/C++ 制作一个 2D 等距游戏引擎,我在进行等距计算时得到了这个:

enter image description here

这是我在 2D 引擎中计算等距坐标的公式:对于 I-J 坐标,我有:

x = (I - J) * (tileWidth / 2);
y = (J + I) * (tileHeight / 2);

//Totally working with classics tiles

编辑:我的问题是由于我的瓷砖形状是一个立方体,但我不知道如何修复它。我真的需要做一些复杂的数学运算来处理 3D 对象(我宁愿避免这种情况)还是我可以稍微更改一下公式?

编辑 2:解决方案:int isoY = (x + y) * (height/4);

最佳答案

首先,如果它是一个 2D 引擎,我想知道为什么有 3 个维度,为什么以及如何在引擎中使用 z。

假设您想要在等角投影(以像素为单位的(x,y))中给定坐标(I,J)以正交投影中的瓷砖数量。在那种情况下,你的 x 和 y 公式对我来说很好 给定 tileWidth 和 tileHeight 是正确的(即等轴测投影中的值)。而且您不必使用任何 z。

另一方面,如果您的问题是在给定 (x,y,z) 笛卡尔坐标的情况下获取 3D 对象的 (x,y) 像素坐标,我建议您阅读以下内容:Computing the Pixel Coordinates of a 3D Point

如果我猜错了,我会编辑或删除。

关于c++ - 等距坐标、菱形、瓷砖之间不需要的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33687278/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com