我想画一个波浪。到目前为止我有这个:
private void drawWave(int yPos, int xPos, int colour, int length, int amplitude, int alpha) {
int pixelY, pixelX;
for(int i = 0; i < length; i++) {
pixelX = xPos + i;
pixelY = (int) (yPos - Math.sin(Math.toRadians(i)) * amplitude);
Rasterizer2D.drawAlphaPixel(colour, pixelY, 1, 1, alpha, pixelX);
}
}
这画一个波但我不能指定使用的波长,不太确定我怎么能这样做。非常感谢大家。
答案 0 :(得分:0)
要修改波长,可以使用此公式
F(x)= a * sin((1 / b)* x)
其中a是振幅,b是波长。
看看你的代码,你有幅度。您只需要一个新参数来指定b。
答案 1 :(得分:0)
添加float wavelength
之类的参数并更改
pixelY = (int) (yPos - Math.sin( 2.0 * Math.pi * Math.toRadians(i) / wavelength) * amplitude);
你有
y(i) = y0 - A sin(i)
我的等式给你
y = y0 - A sin (2 pi i / L)
其中L
是波长。
现在,这仍然可能无法做到你想要的。这取决于您希望xPos
和yPos
表示的内容。你想让xPos
给你相移吗?如果是,那么您需要将其包含在pixelY
的表达式中。