【发布时间】:2012-10-06 05:15:12
【问题描述】:
这是我第一次在论坛上发帖。但我想我会跳进去问.. 我正在尝试用 x、y、宽度、高度和角度绘制一个矩形。我不想创建图形 2D 对象并使用变换。我认为这是一种低效的方法。我正在尝试使用for循环绘制一个带有旋转的正方形以迭代到正方形宽度,在正方形高度处绘制每次迭代的线条。我对三角的理解真的很缺乏,所以......我当前的代码绘制了一个时髦的三角形。如果还有其他这样的问题,对重复的答案感到抱歉。如果您对我的编码有任何指示,我会喜欢一些更正或指示。
/Edit: 很抱歉没有提问。我需要知道如何使用正弦和余弦来绘制正方形或矩形,旋转中心在正方形或矩形的左上角。通过使用带角度的 sin 和 cos 来获取坐标 (x1,y1),然后使用带角度加 90 度的 sin 和 cos 函数来获取 (x2,y2) 的坐标。使用 counter 变量从左到右绘制随角度变化的从上到下的线条。
for (int s = 0; s < objWidth; s++){
int x1 = (int)(s*Math.cos(Math.toRadians(objAngle)));
int y1 = (int)(s*Math.sin(Math.toRadians(objAngle)));
int x2 = (int)((objWidth-s)*Math.cos(Math.toRadians(objAngle+90)));
int y2 = (int)((objHeight+s)*Math.sin(Math.toRadians(objAngle+90)));
b.setColor(new Color((int)gArray[s]));
b.drawLine(objX+x1, objY+y1, objX+x2, objY+y2);
}
【问题讨论】:
-
我想他只需要旋转矩形,但不知道为什么他的解决方案不起作用。
-
啊一个轮换。我认为 OP 意味着某种倾斜的矩形。我猜,轮换确实更有意义。
-
@Andrew Hmm 我认为这个问题已经很清楚了(鉴于 OP 已经放弃了替代方法并希望自己做):“我如何画一个有角度的正方形?”只是“有角的正方形”需要解释。 :)
标签: java graphics drawing awt trigonometry