笛卡尔情书的隐秘-心形图

[代码] [Java]代码 import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.layout.StackPane; http://www.szhaoexport.com/linked/20130226.do; 
import javafx.scene.paint.Color;
import javafx.stage.Stage;

/**
 * 笛卡尔情书的隐秘r=a(1-sinθ)
 *
 * @author crazykay
 * @see 《兴趣编程100例》心形图
 */
public class JavaFXApplicationHeart extends Application {

    @Override
    public void start(Stage primaryStage) {
        int width, height;
        Canvas canvas = new Canvas(350, 350);
        width = (int) canvas.getWidth();
        height = (int) canvas.getHeight();

        GraphicsContext gc = canvas.getGraphicsContext2D();
        double x, y, r;
        for (int i = 0; i <= 90; i  ) {
            for (int j = 0; j <= 90; j  ) {
                //转换为直角坐标系,设置偏移量,使图画居中
                r = Math.PI / 45 * i * (1 - Math.sin(Math.PI / 45 * j)) * 19;
                x = r * Math.cos(Math.PI / 45 * j) * Math.sin(Math.PI / 45 * i)   width / 2;
                y = -r * Math.sin(Math.PI / 45 * j)   height / 4;

                gc.setFill(Color.RED);
                gc.fillOval(x, y, 2, 2);
                gc.fillOval(x, y, 1, 1);
            }
        }


        StackPane root = new StackPane();
        root.getChildren().add(canvas);

        Scene scene = new Scene(root, Color.BLACK);

        primaryStage.setTitle("r=a(1-sinθ)");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
} http://jy.aaafaipiao.com/linked/20130226.do; 
posted @ 2013-02-27 05:31  chinadiy197601  阅读(374)  评论(0编辑  收藏  举报