Java 函数绘图仪的比例因子

Java 函数绘图仪的比例因子,java,algorithm,math,plot,Java,Algorithm,Math,Plot,我用java做了自己的函数绘图仪,效果很好。 您所要做的就是使用面板的(像素)迭代并计算y值。然后在屏幕上画一条多边形线,就这样了 但我的问题来了:像素数和我想要绘制的值之间有一个比例因子。 例如,我在304'迭代(使用绘图面板的值迭代)。现在,我根据三的规则计算该像素位置(304)的对应值。这给了我1.45436。然后我根据这个值计算sin。这是一个数字。然后我再次使用树的规则来确定这个值对应于哪个y像素。这样做,我必须取整,因为像素是一个整数。还有我的数据丢失。此数据丢失可能会导致以下结果:

我用java做了自己的函数绘图仪,效果很好。 您所要做的就是使用面板的(像素)迭代并计算y值。然后在屏幕上画一条多边形线,就这样了

但我的问题来了:像素数和我想要绘制的值之间有一个比例因子。 例如,我在304'迭代(使用绘图面板的值迭代)。现在,我根据三的规则计算该像素位置(304)的对应值。这给了我1.45436。然后我根据这个值计算sin。这是一个数字。然后我再次使用树的规则来确定这个值对应于哪个y像素。这样做,我必须取整,因为像素是一个整数。还有我的数据丢失。此数据丢失可能会导致以下结果:

这看起来不太好。如果我随意调整窗口的大小,有时会得到一个平滑的结果


我如何解决这个问题?实际上,我从来没有在任何其他函数绘图机中看到过这样的情节。

< P>如果你在java中这样做,你可能会考虑把你的数据点合成为A。这将有浮点坐标,绘图引擎将负责平滑。不过,您可能不得不这样做。

您的代码肯定有问题。也许你在做部分数学运算,用的是应该是浮点的整数。如果你不发代码,你永远也得不到答案。你是不是想得太多了?您并不是真正基于像素工作。当我缩放绘图时,我看到红线是抗锯齿的,这很有意义,因为您没有绘制像素,而是绘制了一条多边形线。但是这种消除混叠的方法让我想到了点的坐标可以是浮点数。如果不四舍五入会发生什么?四舍五入是错误的。现在将浮点值传递到多段线非常有效。谢谢。我已经使用了PAT2D,但是我没有考虑过我可以把浮点值传递给它的方法。这样做现在效果很好。