我在表面视图中有一个移动的物体,它从固定位置移动。
我需要将它设置为像抛物线一样移动..我的对象像使用 x 和 y 一样绘制所以我这样做
不知道使用该线程如何计算 X 和 y 请帮助?
我在表面视图中有一个移动的物体,它从固定位置移动。
我需要将它设置为像抛物线一样移动..我的对象像使用 x 和 y 一样绘制所以我这样做
不知道使用该线程如何计算 X 和 y 请帮助?
基本公式是:
y=x^2 + m
(m 是 x 偏移量)(2 可以是高于 2 的偶数,但现在使用 2)
您的起始位置的坐标为 y0, x0
所以你的第一个位置是:
y = x0^2 + y0
对于下一步,像这样计算您的 x 值
x = x0+(n*stepsize)
x0 是您的初始 x 值(见上文)。stepsize 是每个步骤的像素偏移量(现在只需使用 1) n 是绘图循环中的当前步骤,如下所示: for(int n=0;n<100;n++)
然后用这个 x 值计算你的 y 值
y = x^2 + y0
主要编辑:
所以我想到了另一种方法来做你想做的事情,这更简单:
首先,您需要定义起点 (x0|y0) 和终点 (x1|y1) 坐标。然后使用单独的公式计算动画期间的新位置。
计算距离
x0x1 = x1 - x0
y0y1 = y1 - y0
定义您想要多少个动画步长(假设是 20)将距离除以该值,并在每个动画步长中将该步距添加到最后一个坐标。
现在要使整个事物成为抛物线,您必须将距离分开,而不是事件,而是对数,至少在运动开始时。但请在尝试之前先尝试前者。
这是一种更加数字化的方法 - 我希望它有所帮助。