- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 2D 空间中有一个对象,我想根据 2D 空间中输入的移动方式对其进行旋转。基本上,假设您在屏幕上顺时针或逆时针移动手指或鼠标,对象会根据您旋转手指的方式旋转。对象的位置根本无关紧要,这意味着旋转仅从手指移动转换到对象,对象的位置与手指移动位置之间没有关系。
我正在使用 libGdx,并且在调用方法“touchDragged”时获得 X 和 Y 增量移动(正整数和负整数取决于移动方向)。
我如何使用这个增量 X 和 Y 来计算我可以应用到我的对象的移动度数。最好我只想增加弧度或度数。
如果只使用一个轴,我可以让它正常工作。 IE。如果我向上或向下移动手指,或者顺时针或逆时针旋转。我的问题是让它因 X 和 Y 运动而工作。
PS:在发布这个问题之前,我四处看了看,我知道有类似的问题,但我无法根据它们找出答案。我不知道为什么,但似乎所有不同的问题都在解决不同的用例,每个用例都与我的不同。
最佳答案
[编辑:正如 Barodapride 所述,libgdx 提供了 Vector2 API Vector2.angle(Vector2 Reference),它已经将浮点角度值返回给您,但最好知道幕后发生了什么]
使用笛卡尔坐标到极坐标,你的轴位置将是你笛卡尔平面中的 0,0,我现在无法测试但你可以通过我编写的以下代码了解这个想法,看看 this进一步引用:
public boolean touchDragged(InputEvent event, float posX, float posY, int pointer){
//Declare and get the position of your axis (in screen coords, you can get that by camera.project()
Float axisX,axisY;
axisX = getAxisX();
axisY = getAxisY();
//Transform the clicked position to the cartesian plane given the axis
Float cartesianX,cartesianY;
cartesianX = posX-axisX;
cartesianY = posY-axisY;
//Calculate de radius
Float radius = Math.sqrt( cartesianX * cartesianX + cartesianY * cartesianY );
//Get the angle in radians
Float angleInRadians = Math.acos( cartesianX / radius );
//Get the angle in degrees
Float angleInDegrees = angleInRadians *57.2958;
return true;
}
相反,从给定的半径和角度得到 x,y:
double x = getAxisX() + Math.cos( angleInRadians ) * radius;
double y = getAxisY() + Math.sin( angleInRadians ) * radius;
关于input - 根据触摸或鼠标的 delta x,y 移动计算旋转度数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36727257/
我想知道当动画结束或被中断时如何在旋转动画中获取当前角度/度数? 我的想法是当点击某个按钮时动画被打断时,旋转将逆时针方向(当前流向是顺时针方向),从被打断时的最后一个角度/度开始。 我试过使用 ap
我正在尝试使用 TYPE_ACCELEROMETER 传感器获取手机角度。我的目标是仅在手机倾斜后获取角度值。它有效,但问题是当我 Handlebars 机正面朝上放在 table 上时,它仍然说 i
以下代码显示为问号而不是度数符号: var airF = Math.round(Number(MDTMOBILE.RWISWeather[i].AirTemp)) + "\u00B0" + "F";
我使用 css 3D-transform rotateY 翻转带有 css transition 的 div。我希望图像翻转一定次数:当转换结束时,我再次触发它直到达到某个计数器值。 我想做什么:当
我正在开发一个 map 应用程序的插件,它有很多类,有大量的单位选项。我觉得我在维护模型内的顺序方面有很好的处理能力。例如,Angle 类具有 Degrees 和 Radians 的属性并自动相互更新
我有一个栅格,是从 netcdf 中获得的(Lambert Conic Conformal projection): library(meteoForecast) wrf_tempor
我在 mapView 的叠加层上有一组项目。 我知道大多数对象的顶部/底部/左侧/右侧位置。 我想使用 zoomToSpan() 方法来放大该区域。 用这种方法计算纬度/经度的正确方法是什么? 最佳答
给你一个具有 100 万个顶点的最大度数为 4 的简单图。 我们想找到一个最大独立子集。 一般情况下是NP难的。 度数最大为 4 的事实是否提供了计算它的有效解决方案? 最佳答案 进一步阅读维基百科页
我是一名优秀的程序员,十分优秀!