多角形で作成された円を星に変えるために、尖っていない問題があります。基本的には、円の中からポイントを追加して星に変えたいと思っています。それはコースの課題です。私はスパイクのコードを作成する方法を知りません。Java:円で作成された多角形から星を作成
注
spikinessパラメータは0.0(サッカーボールのような)フック側及び1.0(ウニのような)非常にフック側ではないされた状態で0.0〜1.0の範囲とすることができます。 - (例えば、Iが実現しようとした式が、無成功し)
私は思いinnerRadius =半径×(spikiness 1.0):
spikinessパラメータは、式を使用して内側の円の半径を決定します助けをありがとう!
マイコード:
import java.awt.*;
public class StarSampler {
public static void main(String[] args)
{
DrawingPanel panel = new DrawingPanel(500, 500);
Graphics2D g = panel.getGraphics();
g.setColor(Color.BLUE);
fillStar(g, 250, 250, 100, 36, 1); // The (1) is for extreme spikeness
}
public static void fillStar(Graphics2D g, int ctrX, int ctrY, int radius, int nPoints, double spikiness)
{
double xDouble[] = new double[nPoints];
double yDouble[] = new double [nPoints];
int xPoint[] = new int[nPoints];
int yPoint[]= new int[nPoints];
int angle = 0;
for (int i = 0; i < nPoints; i++) // Continue through use of Prog6 formula
{
xDouble[i] = ctrX + radius * Math.cos(Math.toRadians(angle));
yDouble[i] = ctrY + radius * Math.sin(Math.toRadians(angle));
angle += 10;
}
for (int j = 0; j < nPoints; j++) // Casts for ints and doubles
{
xPoint[j] = (int) xDouble[j];
yPoint[j] = (int) yDouble[j];
}
g.fillPolygon(xPoint, yPoint, nPoints); // Creates polygon
}
}
N「点」の星は、2Nポイント0、2、4 ... 'R'半径である点と、点1とちょうど円であります、3、4 ...は半径「スパイクネス* R」にある。あなたは 'N '点(2Nではなく)を作成しているだけで、あなたは' spikiness'を使用していません。 –
私は2Nを作成していないことを知っています、そして、スパイクを使用していません。私は基本的には、全体のメソッドをコピーし、スパイクを行うだろうか? – Aramza