gpt4 book ai didi

javascript - 为什么我的线不匹配?

转载 作者:行者123 更新时间:2023-11-28 08:21:02 25 4
gpt4 key购买 nike

编辑:显然,PI 在 JavaScript 中是有限的(这是有道理的)。但这给我留下了一个大问题。计算我需要的 Angular 下一个最佳方法是什么?

好吧,首先,我的代码: http://jsfiddle.net/joshlalonde/vtfyj/34/

我正在绘制 120 度 Angular 的立方体。因此坐标是根据 (h)eight 和 theta (120) 计算的。

在第 46 行,我有一个 for 循环,其中包含一个用于创建行/列的嵌套 for 循环。

这有点微妙,但我注意到线条并不完全匹配。用于计算每个立方体位置的代码位于第 49 行。立方体原点的第一个参数(我的 x 值)中的一个内容已关闭。谁能帮忙看看这是什么?

var cube = new Cube(
origin.x + (j * -w * (Math.PI)) +
(i * w * (Math.PI))
, origin.y + j * (h / 2) +
i * (h / 2) +
(-k*h), h);

抱歉,如果这令人困惑。 I、j 和 k 指的是通过 for 循环递增的变量。基本上,是一个三维的 for 循环。

我认为问题出在 Math.PI 上。宽度不是问题,至少我相信是这样。我最初使用的是 3.2(我以某种方式猜到了,它看起来相当不错。但我不知道这个神奇的数字是什么)。我猜这与将 Angular 转换为弧度有关,但我不明白为什么 Math.PI/180 不是解决方案。我尝试了很多事情。 60(度) * Math.PI/180 不起作用。这是做什么用的?

编辑:这可能只是一个与 JavaScript 相关的数学问题。数学理论上是正确的,但无法正确计算。我会接受不完美,以免自己以非正统的方式重写代码。我可以说,使用三 Angular 数学来规避需要很大的努力。

最佳答案

有 2 个问题...

  1. 将第 35 行更改为 var w=h*Math.sin(30);。这里的 30Cube getWidth 方法中的 this.theta/4 相匹配,因为 this.theta 等于 120。

  2. 使用以下代码生成新立方体的位置。您不需要 Math.Pi。您需要在计算中使用立方体的宽度和高度。

    var cube = new Cube(
    origin.x+ -j*w - i*h,
    origin.y + -j*w/2 + i*h/2,
    h);

关于javascript - 为什么我的线不匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22977858/

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