2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 在java中如何输入角度_在Java中以特定角度绘制一条线

在java中如何输入角度_在Java中以特定角度绘制一条线

时间:2022-02-17 10:54:38

相关推荐

在java中如何输入角度_在Java中以特定角度绘制一条线

提出这个问题我觉得很愚蠢(我的触觉是生锈的),但我有一个艰难的时刻。

假设我有一个(x,y)对于一行的起始点和(x,y)始终是相同的,这个更改为同一行的终点。该线也总是40px长。在程序开始时,行起始于垂直方向(可将其称为0度)。基于用户输入,我需要通过仅改变结束(x,y)从其原点重绘特定数量的度数。

如果你需要更多的食物:

我正在努力计算这个,并使其在Java中工作。我可以使数学工作根据圆弧段的弧长计算点,但是我不知道如何使Java做到这一点。

我认为它会以三角形的角度工作更简单,因为我总是会知道三角形的两边的长度(一边由40px长的线形成,另一边由该线的起点形成,另一边由该线的边界形成) JPanel)和两条线形成的角度。然而,我的大脑也是从尝试弄清楚的。任何帮助将不胜感激。

更新:

@casablanca让我在正确的轨道上。我刷了我的trig功能,这里是我如何工作。

首先,我没有意识到90度是直立的,但一旦我意识到我的解决方案反映了这一事实。我正在画出我的线,从框架的底部中心出来。由于当我的用户给出的角度小于90度时,三角形的相对侧在屏幕的右侧,当我的用户给出的角度大于90度时,屏幕的左侧有调整公式来解释这个事实,因此我有四种方法,一种用于屏幕左侧的x坐标(当用户给定角度大于90度时),一个用于左侧的y坐标的屏幕(当用户给定角度大于90度时)以及当用户给定角度小于90度时屏幕右侧的相同内容。所有方法中的int长度是斜边的长度。再次感谢您的帮助@casablanca!

public double leftSideX(double angle, int length){

double x = frameWidth/2 - (length * Math.cos(Math.toRadians(90-(Math.toDegrees(angle)-90))));

return x;

}

public double leftSideY(double angle, int length){

double y = frameHeight - (length * Math.sin(Math.toRadians(90-(Math.toDegrees(angle)-90))));

return y;

}

public double rightSideX(double angle, int length){

double x = frameWidth/2 + (length * Math.cos(angle));

return x;

}

public double rightSideY(double angle, int length){

double y = frameHeight - (length * Math.sin(angle));

return y;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。