0
setStroke()、stroke()を使用して図形の周りに境界線を描画しようとしていますが、何らかの理由で境界線がまったく表示されません。 私は助けが必要なコードは、drawHexagon()メソッドの中にあります。図形の周りに枠を描く
Here`s私のコード
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import java.util.Arrays;
/**
* Created by Robin on 18.03.2017.
*/
public class Gui extends Application{
private Canvas canvas;
private Group mainLayout;
public Gui(){
canvas = new Canvas(800,600);
mainLayout = new Group();
mainLayout.getChildren().add(canvas);
GraphicsContext context =canvas.getGraphicsContext2D();
drawHexagon(new double[]{250,250},50,Color.GREEN,context);
}
public void drawHexagon(double[] centerPoint,double size,Color color,GraphicsContext context){
context.setFill(color);
context.setStroke(Color.BLACK);
double[][]myHexa =getHexagon(centerPoint,size);
double[]xPoints = new double[]{myHexa[0][0],myHexa[1][0],myHexa[2][0],myHexa[3][0],myHexa[4][0],myHexa[5][0]};
double[]yPoints =new double[]{myHexa[0][1],myHexa[1][1],myHexa[2][1],myHexa[3][1],myHexa[4][1],myHexa[5][1]};
context.fillPolygon(xPoints,yPoints,6);
context.stroke();
}
private static double[][]getHexagon(double[] centerPoint,double size){
double[][]points = new double[6][2];
for(int i=0;i<6;i++){
double angle =degreeToRad(60*i+30);
double x =(centerPoint[0]+size*Math.cos(angle));
double y =(centerPoint[1]+size*Math.sin(angle));
points[i]=new double[]{x,y};
}
return points;
}
private static double degreeToRad(double degree){
return (Math.PI/180)*degree;
}
@Override
public void start(Stage primaryStage) throws Exception {
Scene scene = new Scene(mainLayout,800,600);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[]args){
launch(args);
}
}
私はおそらくそこに本当に愚かな間違いをしましたが、私は私のために、なぜこのdoesntの仕事を把握傾けます。
助けていただければ幸いです。