Java在一个圆圈上寻找点
我有下面的方程式来找到一个圆上的点:Java在一个圆圈上寻找点,java,math,point,Java,Math,Point,我有下面的方程式来找到一个圆上的点: x = (int) (10 * Math.cos(45.0)); y = (int) (10 * Math.sin(45.0)); x1 = new Point(x, y); 然后我画一条从圆心到这个新点的线 我本以为改变Math.cos和Math.sin函数的参数会改变直线从中心出来的角度,但当我测试这个时,如果改变,则是圆的半径会改变直线绘制的角度 我是不是误解了数学?这里出了什么问题 这是用上述方程式从中心圆画出的线,但它的长度应与该中心圆的半径相同
x = (int) (10 * Math.cos(45.0));
y = (int) (10 * Math.sin(45.0));
x1 = new Point(x, y);
然后我画一条从圆心到这个新点的线
我本以为改变Math.cos和Math.sin函数的参数会改变直线从中心出来的角度,但当我测试这个时,如果改变,则是圆的半径会改变直线绘制的角度
我是不是误解了数学?这里出了什么问题
这是用上述方程式从中心圆画出的线,但它的长度应与该中心圆的半径相同
这是方程式为时的结果图像:
x = (int) (350 * Math.cos(45.0));
y = (int) (350 * Math.sin(45.0));
x1 = new Point(x, y);
并记录为接受弧度,而不是度
使用和在它们之间进行转换
cos公共静态双cos双a返回
角的三角余弦。特殊情况:
*如果参数为NaN或无穷大,则结果为NaN。计算结果必须在精确结果的1 ulp范围内。后果
必须是半单调的
参数:a-角度,以弧度为单位。返回:余弦
这是争论的焦点
并记录为接受弧度,而不是度
使用和在它们之间进行转换
cos公共静态双cos双a返回
角的三角余弦。特殊情况:
*如果参数为NaN或无穷大,则结果为NaN。计算结果必须在精确结果的1 ulp范围内。后果
必须是半单调的
参数:a-角度,以弧度为单位。返回:余弦
这是争论的焦点
您的代码中似乎有不止一个错误。如果你能以一个完整的代码的形式展示,这将非常有帮助。还是有一些猜测: 假设xc和yc是具有圆心值的变量,R是半径,则圆心α角处的点为 x=R*Math.cosalpha+xc; y=R*Math.sinalpha+yc 在您的代码中,xc和yc看起来都是0,因此您可以有效地从圆心到圆心为0,0的圆上的点绘制一条线,在Java2D世界中,圆心是屏幕的左上角 正如MadProgrammer指出的那样,Math.cos和Math.sin以弧度为参数,45.0的值表示使用度。使用可能会解决这个问题。
可能会有更多的问题,但根据问题的当前状态很难猜测。看起来您的代码中实际上有不止一个错误。如果你能以一个完整的代码的形式展示,这将非常有帮助。还是有一些猜测: 假设xc和yc是具有圆心值的变量,R是半径,则圆心α角处的点为 x=R*Math.cosalpha+xc; y=R*Math.sinalpha+yc 在您的代码中,xc和yc看起来都是0,因此您可以有效地从圆心到圆心为0,0的圆上的点绘制一条线,在Java2D世界中,圆心是屏幕的左上角 正如MadProgrammer指出的那样,Math.cos和Math.sin以弧度为参数,45.0的值表示使用度。使用可能会解决这个问题。
可能会有更多的问题,但根据问题的当前状态很难猜测。您的描述不太清楚。可能一些不同参数的屏幕截图会大大改善这个问题。还将向我们展示绘制线条的代码。你的描述也不太清楚。可能一些不同参数的屏幕截图会大大改善这个问题。还将向我们展示绘制线条的代码。关于这样一个问题,请参见“好的猜测”。@SergGr我犯了不止一次的错误,实际上似乎并没有影响输出。事实上,不管我在cos和sin的参数中加上什么样的双值,得到的线仍然和第一张图片中的一样长:@MichaelTracey其他的一切都是猜测工作。你也可以看一看类似于或或@MadProgrammer的东西。你是对的,是我的实现中出现问题的另一个地方:谢谢你对这样一个问题的猜测。@SergGr我犯了不止一次的错误,实际上似乎并没有影响输出。事实上,不管我在cos和sin的参数中加上什么样的双值,得到的线仍然和第一张图片中的一样长:@MichaelTracey其他的一切都是猜测工作。你也可以看看类似于或@MadProgrammer的东西。你是对的,这是我的实现中出现的另一个问题:谢谢