我正在开发一个Java程序,它可以在控制台上打印正弦波。以下是我目前为止编写的代码:
int num = 7;
for (double y = 2; y >= 0; y-=0.2) {
for (double x = 0; x <= num; x+=0.2) {
if ( ((0.1+x) >= Math.asin((double)y-1)) && (((double)x-0.1) <= Math.asin((double)y-1)) )
System.out.print('*');
else
System.out.print(' ');
}
System.out.println();
}
本程序将每行的每个字符视为坐标平面上的0.2 x 0.2面积。如果正弦函数经过该面积,则在屏幕上打印星号。否则,打印空格。 运行时,将打印以下内容到控制台:
*
*
*
*
*
*
有人能告诉我为什么我的程序在打印出波浪图的第一部分后停止了吗?
asin
永远不会给你一个在 -pi..pi 之外的值。另一方面,sin
是周期性的,所以你可以尝试使用它(演示)。 - Sergey Kalinichenko