所以我有4分,p1,p2,p3和p4。它们一直向左移动,并且当它们到达太远的左边(x-100)
时,它们会向右移动(窗口宽度+ 100)。他们的Y是随机的。
我还在每个点之间绘制了线条,这使得流畅的“锯齿状”线在屏幕上移动(有点像Windows任务管理器中的CPU使用率图表)。
if (p1x < p2x) {
g.drawLine(p1x, p1y, p2x, p2y);
}
if (p2x < p3x) {
g.drawLine(p2x, p2y, p3x, p3y);
}
if (p3x < p4x) {
g.drawLine(p3x, p3y, p4x, p4y);
}
if (p4x < p1x) {
g.drawLine(p4x, p4y, p1x, p1y);
}
我想要一个点在窗口中有一个常数X,但是随着Y轴中的线移动,我该怎么做?
答案 0 :(得分:2)
我想你可能正在寻找linear interpolation:
// assuming p0x and p0y are the coordinates of the dot, and it needs to
// be drawn somewhere between p3 and p4 (ie, p3x < p0x < p4x :
p0y = p3y + (p4y-p3y) * (p0x-p3x) / (p4x-p3x);
查看维基百科页面,特别是图纸,如果我对您的问题的解释是错误的,请告诉我。