【发布时间】:2018-08-06 21:08:40
【问题描述】:
我一直在寻找这个功能,但到目前为止我找不到任何我能理解的东西。我已经有一个旋转函数来使它等于位置,但慢慢地证明使用 0-360 和所有的位置有点困难。
我正在使用 html canvas 2d 上下文在笛卡尔坐标系上渲染对象。
我希望 object1 以转弯速率 (R) 面对 positionX 和 positionY,相当简单。
我无需提供任何代码,因为无论如何您都可能自己编写代码。但无论如何我都会给你:
let faceAt = function (thisObject,positionX,positionY) {
let desiredLocationX = positionX - thisObject.transform.x;
let desiredLocationY = positionY -thisObject.transform.y;
thisObject.transform.rotation = Math.degrees(Math.atan2(desiredLocationY, desiredLocationX));
};
(Math.degrees) 函数将弧度转换为度数。
【问题讨论】:
-
我不确定您在该示例代码中做了什么。 Math.degrees 甚至是一个函数吗?我在 MDN 中没有看到它(我必须确保我没有发疯)。如果您正在寻找完整的教程,您应该研究如何操作元素的位置。然后不难拼凑出一种方法,将元素逐帧移动到您想要的位置。
-
哦,抱歉,Math.degrees 是我自己实现的,用于将弧度转换为度数。
-
那么,您使用的是 HTML5 画布(您提到了 2d 上下文)?或者你想旋转一个 DOM 元素?
-
我正在使用 html 渲染上下文 (2d) 在笛卡尔平原上渲染对象
-
是的,涉及到一个画布元素,但考虑到这个问题,我不明白为什么这些都是相关的。
标签: javascript html