Processing 以亚像素精度旋转/点

Processing 以亚像素精度旋转/点,processing,Processing,如何在下面绘制的点的位置获得亚像素精度?仅使用整数精度——导致观察到的移动点抖动 int金额=300; 浮动[]x=新浮动[金额]; 浮动[]y=新浮动[金额]; 浮动[]z=新浮动[金额]; 无效设置(){ 尺寸(500、400、P3D); 中风(255); 冲程重量(1); 对于(inti=0;i这是与您的另一个问题相同的问题。您使用的是整数除法,它会截断小数部分 这一行: rotateY((帧数/1000)*1); 需要这样做: rotateY((帧数/1000.0)*1); 作为将来

如何在下面绘制的点的位置获得亚像素精度?仅使用整数精度——导致观察到的移动点抖动

int金额=300;
浮动[]x=新浮动[金额];
浮动[]y=新浮动[金额];
浮动[]z=新浮动[金额];
无效设置(){
尺寸(500、400、P3D);
中风(255);
冲程重量(1);

对于(inti=0;i这是与您的另一个问题相同的问题。您使用的是整数除法,它会截断小数部分

这一行:

rotateY((帧数/1000)*1);
需要这样做:

rotateY((帧数/1000.0)*1);
作为将来的参考,通过一些调试可以很容易地发现这些问题。您需要检查您的程序并测试您所做的每一个假设。换句话说,将所有内容打印出来。。例如:

println(帧数/1000);

那一行会告诉你你的全部问题。

谢谢,但那一更改根本没有明显的改善。@ChrisJJ嗯,你确定吗?用那一更改运行你的代码对我非常有效。@ChrisJJ还有一个可能需要的更改。使用
float(random(-150150))的行不要为我编译,因为从
random()
返回的值已经是一个
float
,所以将它传递到
float()
函数是无效的。只需让这些行使用
random(-150150);
而不使用
float()
部分。