我正在编写一个绘图程序,我想要实现的一个功能是任意的双面形状。我已经解决了大部分功能,但我需要的一件事是从表示多个边的整数生成Polygon
对象的函数。我不记得三角学,尽管我确信我的问题涉及一些。
答案 0 :(得分:2)
您的问题分为两部分。首先,您需要一种算法来生成包含多边形顶点的点,这是一个与语言无关的过程。根据您问题的措辞,似乎任何具有所需边数的多边形都可以工作,因此您可以根据固定半径的圆生成正多边形。
例如,对于输入4
,您的积分可能是(0, r)
,(r, 0)
,(0, -r)
和(-r, 0)
。您可以通过绘制一个半径为r
的虚构/不可见圆圈,然后选择点(sin(360/input)*r, cos(360/input)*r)
来获得这些圆。 (请记住,Java的trig使用的是弧度,而不是度数。)
获得积分后,您必须创建Polygon
对象。 There's a constructor,它采用x坐标数组和y坐标数组,加上顶点总数,这只是你的初始输入。你真正需要做的就是将你的点的坐标弹出到两个阵列中,然后你就完成了设置。
答案 1 :(得分:2)
希望这会有所帮助。它提供常规多边形的代码。 http://java-sl.com/shapes.html