アットウィキロゴ

パスの練習

package pic;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;
import javafx.scene.Group;
import javafx.scene.shape.*;
import static javafx.application.Application.launch;
import javafx.scene.paint.Color;
 import javafx.scene.input.MouseEvent;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.canvas.Canvas;
import javafx.scene.image.PixelReader;
 import javafx.scene.canvas.GraphicsContext;
 
public class pro extends Application {
 
Canvas cam;
GraphicsContext gc;
 
int[][] mr=new int[2000][2000];
int[][] mg=new int[2000][2000];
int[][] mb=new int[2000][2000];
 
double[][] pointx=new double[100][1000];
double[][] pointy=new double[100][1000];
int number;
int[] number_point=new int[100];
 
 
public static void main(String[] args) {
launch(args);
}
 
 
@Override
public void start(Stage primaryStage) {
 
 
    number=1;
 
    int s;
 for(s=1;s<101;s++){   
    number_point[number]=0;
}
 
Image im = new Image("file:d.jpg");
 
int h=(int)im.getHeight();
int w=(int)im.getWidth();
 
ImageView imageView = new ImageView();
imageView.setImage(im);
 
 
PixelReader reader = im.getPixelReader();
 
int mx,nx;
 
for(mx=0;mx<h;mx++){
for(nx=0;nx<w;nx++){
Color col = reader.getColor(nx, mx);
mr[mx][nx] =(int)(255*col.getRed());
mg[mx][nx] = (int)(255*col.getGreen());
mb[mx][nx] = (int)(255*col.getBlue());
}
}
 
 
cam = new Canvas(w,h);
gc = cam.getGraphicsContext2D();
 
 
 
 
for(mx=0;mx<h;mx++){
for(nx=0;nx<w;nx++){
Color c = Color.rgb(mr[mx][nx],mg[mx][nx],mb[mx][nx]); 
gc.setFill(c);
gc.fillRect(nx,mx,1,1);
}
}
 
cam.addEventHandler(MouseEvent.MOUSE_CLICKED, 
       new EventHandler<MouseEvent>() {
           @Override
           public void handle(MouseEvent e) {
 
               int x1,y1;
 
               int px=(int)e.getX();
               int py=(int)e.getY();
 gc.setFill(Color.RED);
gc.fillRect(px,py,5,5);
 
number_point[number]=number_point[number]+1;
int sx=number_point[number];
pointx[number][sx]=px;
pointy[number][sx]=py;
 
 
 
 
}
       });
 
 
Button btn = new Button("ライン");
btn.setLayoutX(100);
btn.setLayoutY(600);
 
btn.setOnAction(new EventHandler<ActionEvent>() {
 
            @Override
            public void handle(ActionEvent event) {
 
                int s;
 
                System.out.println(number_point[number]);
                System.out.println(pointx[number][1]);
 
        gc.setStroke(Color.BLUE);
        gc.setLineWidth(3); 
        for(s=1;s<number_point[number];s++){
       gc.strokeLine(pointx[number][s], pointy[number][s], pointx[number][s+1], pointy[number][s+1]);
            }
 
        int s1;
        s1=number_point[number];
         gc.strokeLine(pointx[number][s1], pointy[number][s1], pointx[number][1], pointy[number][1]);
 
 
 
 
 
 
 
            }
        });
 
 
 
Button btn2 = new Button("決定");
btn2.setLayoutX(200);
btn2.setLayoutY(600);
 
btn2.setOnAction(new EventHandler<ActionEvent>() {
 
            @Override
            public void handle(ActionEvent event) {
 
                int s;
 
                number=number+1;
 
            }
        });
 
 
 Button btn3 = new Button("記録");
btn3.setLayoutX(300);
btn3.setLayoutY(600);
 
btn3.setOnAction(new EventHandler<ActionEvent>() {
 
            @Override
            public void handle(ActionEvent event) {
 
                int sx,s;
 
                for(s=1;s<number+1;s++){
                 for(sx=1;sx<number_point[s]+1;sx++){
                System.out.println(s+","+sx+","+pointx[s][sx]+","+pointy[s][sx]);    
                } 
                }
 
 
 
 
 
            }
        });
 
 
 
 
Group root = new Group();
Scene scene = new Scene(root, 700, 700); 
 
root.getChildren().add(cam);
root.getChildren().add(btn);
root.getChildren().add(btn2);
root.getChildren().add(btn3);
primaryStage.setTitle("グラフ");
primaryStage.setScene(scene);
primaryStage.show();
 
}
 
 
 
}
最終更新:2015年06月22日 12:15