JavaFX制作水墨大写意画板程序
来源:互联网 发布:外汇手机模拟软件 编辑:程序博客网 时间:2024/04/27 17:47
中国水墨有灵动随机变幻的特性风格
水墨大写意笔法如锥画沙、如屋漏痕,如何模拟,请看冰豆小李的超简易方法:
package waterinkmaster;import javafx.application.Application;import javafx.event.EventHandler;import javafx.scene.Scene;import javafx.scene.canvas.Canvas;import javafx.scene.canvas.GraphicsContext;import javafx.scene.input.KeyEvent;import javafx.scene.input.MouseEvent;import javafx.scene.layout.StackPane;import javafx.scene.paint.Color;import javafx.stage.Stage;public class WaterInkMaster extends Application { private static final int WIDTH = 1000; private static final int HEIGHT = 500; private int brushSize = 30; private Color color = Color.BLACK; @Override public void start(Stage primaryStage) { Canvas canvas = new Canvas(WIDTH, HEIGHT); GraphicsContext gc = canvas.getGraphicsContext2D(); //在canvas上拖动鼠标时绘制图形 canvas.setOnMouseDragged(new EventHandler<MouseEvent>() { @Override public void handle(MouseEvent me) { double px = me.getX() - brushSize / 2; double py = me.getY() - brushSize / 2; double pw = Math.random() * brushSize; double ph = Math.random() * brushSize; gc.save(); gc.setFill(color); gc.fillOval(px, py, pw, ph); gc.restore(); } }); StackPane root = new StackPane(); root.getChildren().add(canvas); Scene scene = new Scene(root, WIDTH, HEIGHT); //按住A键和F键分别缩小和增大画笔尺寸 scene.setOnKeyTyped(new EventHandler<KeyEvent>() { @Override public void handle(KeyEvent ke) { System.out.println(ke.getCharacter()); switch (ke.getCharacter()) { case "F": brushSize++; break; case "f": brushSize++; break; case "A": if (brushSize > 0) { brushSize--; } ; break; case "a": if (brushSize > 0) { brushSize--; } ; break; case "1": color = Color.rgb(0, 0, 0, 1); break; case "2": color = Color.rgb(50, 50, 50, 1); break; case "3": color = Color.rgb(100, 100, 100, 0.9); break; case "4": color = Color.rgb(150, 150, 150, 0.8); break; case "5": color = Color.rgb(200, 200, 200, 0.75); break; case "6": color = Color.rgb(250, 250, 250, 0.5); break; } } }); primaryStage.setTitle("水墨画师"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); }}
肆意纵横吧!
0 0
- JavaFX制作水墨大写意画板程序
- 水墨大写意笔法模拟简易方法
- html5 canvas写成的水墨大写意画笔
- 轻松写意程序人生
- 轻松写意程序人生
- 写意
- 怎样制作CorelDRAW中写意水墨画效果
- Qt制作画板
- 简单画板的制作
- OpenCV +Python 制作画板
- 利用PS滤镜及图层叠加制作水墨荷花
- IOS画板程序
- html5+javascript制作简易画板
- 利用CGMutablePathRef制作画板涂鸦
- android 制作简单的画板
- 使用Canvas,Path制作画板
- 制作一个简单的画板
- XMG quartz2D 画板的制作
- Android项目引用不同library导致多个android-support-v4包冲突问题
- andrroid 动画 oncreate 和 onclick 启动方式
- 单片机的状态机介绍
- [hadoop]MapReduce实例之好友推荐(六)
- VS2010 驱动设置
- JavaFX制作水墨大写意画板程序
- 【OpenCV_01】什么是OpenCV
- Design Pattern - Behavioral Patterns - Visitor Pattern
- Solr的搭建和部署
- 云海OA自动化办公系统
- window.location.hash 属性使用说明
- 229. Majority Element II
- sql data_add()函数
- http服务器与cgi交互过程