笛卡尔-心形图 源代码 分析

.Net技术 码拜 6年前 (2014-12-11) 672次浏览 0个评论

java的代码如下,谁能帮我用C#改写一下啊,谢谢,感激不尽
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.layout.StackPane;
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://www.oschina.net/code/snippet_104514_18581


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明笛卡尔-心形图 源代码 分析
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!