Java基础之在窗口中绘图——绘制曲线(CurveApplet 1)
2013-12-24 00:09
429 查看
Applet程序。
定义自由曲线的类有两个,其中一个定义二次曲线,另一个定义三次曲线。这些自由曲线是用一系列线段定义的参数化曲线。二次曲线段用方程定义,方程包含独立变量x的平方。三次曲线也用方程定义,方程包含独立变量x的立方。
QuadCurve2D:二次曲线的抽象基类,曲线用两个端点和一个用来定义两端切线的控制点来定义。切线是从端点到控制点的直线。
CubicCurve2D:三次曲线的抽象基类,曲线用两个端点和两个用来定义两端切线的控制点来定义。切线是从端点到对应控制点的直线。
定义自由曲线的类有两个,其中一个定义二次曲线,另一个定义三次曲线。这些自由曲线是用一系列线段定义的参数化曲线。二次曲线段用方程定义,方程包含独立变量x的平方。三次曲线也用方程定义,方程包含独立变量x的立方。
QuadCurve2D:二次曲线的抽象基类,曲线用两个端点和一个用来定义两端切线的控制点来定义。切线是从端点到控制点的直线。
CubicCurve2D:三次曲线的抽象基类,曲线用两个端点和两个用来定义两端切线的控制点来定义。切线是从端点到对应控制点的直线。
import javax.swing.*; import java.awt.*; import java.awt.geom.*; @SuppressWarnings("serial") public class CurveApplet extends JApplet { // Initialize the applet @Override public void init() { pane = new CurvePane(); // Create pane containing curves Container content = getContentPane(); // Get the content pane // Add the pane displaying the curves to the content pane for the applet content.add(pane); // BorderLayout.CENTER is default position } // Class defining a pane on which to draw class CurvePane extends JComponent { // Constructor public CurvePane() { quadCurve = new QuadCurve2D.Double( // Create quadratic curve startQ.x, startQ.y, // Segment start point control.x, control.y, // Control point endQ.x, endQ.y); // Segment end point cubicCurve = new CubicCurve2D.Double( // Create cubic curve startC.x, startC.y, // Segment start point controlStart.x, controlStart.y, // Control pt for start controlEnd.x, controlEnd.y, // Control point for end endC.x, endC.y); // Segment end point } @Override public void paint(Graphics g) { Graphics2D g2D = (Graphics2D)g; // Get a 2D device context // Draw the curves g2D.setPaint(Color.BLUE); g2D.draw(quadCurve); g2D.draw(cubicCurve); } } // Points for quadratic curve private Point2D.Double startQ = new Point2D.Double(50, 75); // Start point private Point2D.Double endQ = new Point2D.Double(150, 75); // End point private Point2D.Double control = new Point2D.Double(80, 25); // Control point // Points for cubic curve private Point2D.Double startC = new Point2D.Double(50, 150); // Start point private Point2D.Double endC = new Point2D.Double(150, 150); // End point private Point2D.Double controlStart = new Point2D.Double(80, 100); // 1st cntrl point private Point2D.Double controlEnd = new Point2D.Double(160, 100); // 2nd cntrl point private QuadCurve2D.Double quadCurve; // Quadratic curve private CubicCurve2D.Double cubicCurve; // Cubic curve private CurvePane pane = new CurvePane(); // Pane to contain curves }
<html> <head> </head> <body bgcolor="000000"> <center> <applet code = "CurveApplet.class" width = "300" height = "300" > </applet> </center> </body> </html>
相关文章推荐
- Java基础之在窗口中绘图——显示曲线的控制点(CurveApplet 2 displaying control points)
- Java基础之在窗口中绘图——移动曲线的控制点(CurveApplet 3 moving the control points)
- Java基础之在窗口中绘图——绘制星星(StarApplet 1)
- Java基础之在窗口中绘图——绘制直线和矩形(Sketcher 2 drawing lines and rectangles)
- Java基础之在窗口中绘图——绘制圆弧和椭圆(Sketcher 3 drawing arcs and ellipses)
- Java基础之在窗口中绘图——利用多态性使用鼠标自由绘图(Sketcher 7 with a crosshair cursor)
- JAVA基础8.1——绘图基础(1)绘制图形
- JAVA进阶8.3——绘图基础(3)绘制文字
- Java基础之在窗口中绘图——使用模型/视图体系结构在视图中绘图(Sketcher 1 drawing a 3D rectangle)
- JAVA进阶8.2——绘图基础(2)绘制图像
- Java基础之在窗口中绘图——填充星型(StarApplet 2 filled stars)
- Java基础之在窗口中绘图——渐变填充(GradientApplet 1)
- Java版SLG游戏开发入门[0]--让绘制的窗口响应鼠标事件 推荐
- OtoStudio学习笔记2(基础编程&矩形控制例子&曲线图绘制)
- Chrome内核解析 -- 绘制引擎基础篇:绘图上下文(RenderingContext, GraphicsContext)
- OpenGL 入门基础教程 —— 在第一个窗口绘制一个三角形
- MFC绘制动态曲线,用双缓冲绘图技术防闪烁
- Win32 绘图基础 -- 绘制直线、边框、贝塞尔曲线、填充、裁剪
- Java基础-绘图技术
- MFC绘制动态曲线,用双缓冲绘图技术防闪烁