当前位置: 首页 > news >正文

网站php网站空间西安的网站建设

网站php网站空间,西安的网站建设,做app 的模板下载网站,桐乡网站建设贝塞尔曲线贝塞尔曲线(The Bzier Curves)#xff0c;是一种在计算机图形学中相当重要的参数曲线(2D#xff0c;3D的称为曲面)。贝塞尔曲线于1962年#xff0c;由法国工程师皮埃尔贝塞尔(Pierre Bzier)所发表#xff0c;他运用贝塞尔曲线来为汽车的主体进行设计。线性曲线给…贝塞尔曲线贝塞尔曲线(The Bézier Curves)是一种在计算机图形学中相当重要的参数曲线(2D3D的称为曲面)。贝塞尔曲线于1962年由法国工程师皮埃尔·贝塞尔(Pierre Bézier)所发表他运用贝塞尔曲线来为汽车的主体进行设计。线性曲线给定点P0、P1线性贝塞尔曲线只是一条两点之间的直线。这条线由下式给出当参数t变化时其过程如下线性贝塞尔曲线函数中的t会经过由P0至P1的B(t)所描述的曲线。例如当t0.25时B(t)即一条由点P0至P1路径的四分之一处。就像由0至1的连续tB(t)描述一条由P0至P1的直线。二次曲线二次方贝塞尔曲线的路径由给定点P0、P1、P2的函数B(t)追踪为建构二次贝塞尔曲线可以中介点Q0和Q1作为由0至1的t* 由P0至P1的连续点Q0描述一条线性贝塞尔曲线。* 由P1至P2的连续点Q1描述一条线性贝塞尔曲线。* 由Q0至Q1的连续点B(t)描述一条二次贝塞尔曲线。二次曲线看起来就是这样的三次曲线为建构高阶曲线便需要相应更多的中介点。对于三次曲线可由线性贝塞尔曲线描述的中介点Q0、Q1、Q2和由二次曲线描述的点R0、R1所建构。P0、P1、P2、P3四个点在平面或在三维空间中定义了三次方贝塞尔曲线。曲线起始于P0走向P1并从P2的方向来到P3。一般不会经过P1或P2这两个点只是在那里提供方向资讯。P0和P1之间的间距决定了曲线在转而趋进P3之前走向P2方向的“长度有多长”。曲线的参数形式为看起来就是这样的高阶曲线更高阶的贝塞尔曲线可以用以下公式表示用表示由点P0、P1、…、Pn所决定的贝塞尔曲线。则有更多的关于贝塞尔曲线的内容你可以去查阅各种数学书。代码实现其实也非常简单把公式套过来直接用起来就OK了。这里我以3次曲线为例for (double k t; k 1 t; k t) {x (1 - k) * (1 - k) * (1 - k) * ps[0].getX() 3 * k * (1 - k) * (1 - k) * ps[1].getX() 3 * k * k * (1 - k) * ps[2].getX() k * k * k * ps[3].getX();y (1 - k) * (1 - k) * (1 - k) * ps[0].getY() 3 * k * (1 - k) * (1 - k) * ps[1].getY() 3 * k * k * (1 - k) * ps[2].getY() k * k * k * ps[3].getY();g2.drawOval((int) x, (int) y, 1, 1);}以上是核心算法下面是完整代码package com.opentcs.customization;import java.awt.Color;import java.awt.Dimension;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.RenderingHints;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.event.MouseMotionListener;import java.awt.geom.Ellipse2D;import java.awt.geom.Point2D;import javax.swing.JFrame;import javax.swing.JPanel;public class BezierDemo extends JPanel implements MouseListener, MouseMotionListener {private static final long serialVersionUID 1L;private Point2D[] ps;private Ellipse2D.Double[] ellipse;private static final double SIDELENGTH 8;private int numPoints;private double t 0.002;public BezierDemo() {numPoints 0;ps new Point2D[4];ellipse new Ellipse2D.Double[4];this.addMouseListener(this);this.addMouseMotionListener(this);}Overrideprotected void paintComponent(Graphics g) {// TODO Auto-generated method stubsuper.paintComponent(g);Graphics2D g2 (Graphics2D) g;g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);g2.setColor(Color.BLUE);for (int i 0; i numPoints; i) { // 绘制圆点 if (i 0 i (numPoints - 1)) { g2.fill(ellipse[i]); } else { g2.draw(ellipse[i]); } // 绘制点之间的连接线 if (numPoints 1 i (numPoints - 1))g2.drawLine((int) ps[i].getX(), (int) ps[i].getY(), (int) ps[i 1].getX(), (int) ps[i 1].getY());}if (numPoints 4) {double x, y;g2.setColor(Color.RED);for (double k t; k 1 t; k t) {x (1 - k) * (1 - k) * (1 - k) * ps[0].getX() 3 * k * (1 - k) * (1 - k) * ps[1].getX() 3 * k * k * (1 - k) * ps[2].getX() k * k * k * ps[3].getX();y (1 - k) * (1 - k) * (1 - k) * ps[0].getY() 3 * k * (1 - k) * (1 - k) * ps[1].getY() 3 * k * k * (1 - k) * ps[2].getY() k * k * k * ps[3].getY();g2.drawOval((int) x, (int) y, 1, 1);}}}Overridepublic Dimension getPreferredSize() {// TODO Auto-generated method stubreturn new Dimension(600, 600);}public static void main(String[] agrs) {JFrame f new JFrame();BezierDemo t2 new BezierDemo();f.add(t2);f.pack();f.setVisible(true);f.setLocationRelativeTo(null);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}Overridepublic void mouseClicked(MouseEvent e) {// TODO Auto-generated method stubif (numPoints 4) {double x e.getX();double y e.getY();ps[numPoints] new Point2D.Double(x, y);Ellipse2D.Double current new Ellipse2D.Double(x - SIDELENGTH / 2, y - SIDELENGTH / 2, SIDELENGTH,SIDELENGTH);ellipse[numPoints] current;numPoints;repaint();}}private int flag -1;Overridepublic void mousePressed(MouseEvent e) {// TODO Auto-generated method stubif (!find((Point2D) e.getPoint()))flag -1;}private boolean find(Point2D p) {for (int i 0; i numPoints; i) {if (ellipse[i].contains(p)) {flag i;return true;}}return false;}Overridepublic void mouseReleased(MouseEvent e) {// TODO Auto-generated method stub}Overridepublic void mouseEntered(MouseEvent e) {// TODO Auto-generated method stub}Overridepublic void mouseExited(MouseEvent e) {// TODO Auto-generated method stub}Overridepublic void mouseDragged(MouseEvent e) {// TODO Auto-generated method stubif (flag 5 flag 0) {double x e.getX();double y e.getY();ps[flag] new Point2D.Double(x, y);Ellipse2D.Double current new Ellipse2D.Double(x - SIDELENGTH / 2, y - SIDELENGTH / 2, SIDELENGTH,SIDELENGTH);ellipse[flag] current;repaint();}}Overridepublic void mouseMoved(MouseEvent e) {// TODO Auto-generated method stub}}效果图
http://www.zqtcl.cn/news/535735/

相关文章:

  • 简单门户网站开发灰色行业seo大神
  • 网站开发学那种语言外贸推广网站建设
  • 公司网站建设及推广中国优秀企业网站欣赏
  • 个人代做网站建设京东类的网站需要什么流程
  • 建设一个地方门户网站厦门网站开发排名
  • 网站建设公司广告标题语网站设计主题有哪些
  • 网站推广方式主要通过做网站所需的知识技能
  • 我想在阿里巴巴网站开店_怎么做app建设网站公司
  • 西安做百度网站的制作网站公司选 择乐云seo
  • 网站优化建设河南手机模拟器
  • 网站建设运维标准深圳企业vi设计公司
  • 做网站怎么挣钱中小型企业网站建设
  • 深圳如何搭建建网站学校网站的建设与应用
  • 免费推广网站入口2023燕wordpress看图插件
  • 网站做不做301四川省住建设厅网站
  • 优化方案官网电子版一个网站做两个优化可以做吗
  • 企业网站排名提升软件智能优化上海网站制作的费用
  • 建分类信息网站西安高端模板建站
  • 南昌做网站哪家好成都三合一网站建设
  • 中国市政建设局网站做外单网站
  • 做本地网站赚钱吗wordpress 预约系统
  • 国外做名片网站优化网站最好的刷排名软件
  • 江西建设部网站网易企业邮箱密码格式
  • 网站哪个服务器好软装设计培训机构
  • 夜间正能量网站入口免费下载2022最新泛站群程序
  • 网站建设个人简历wordpress手写字体
  • 专门做商标的网站有哪些wordpress新文章加new
  • 全国商务网站大全木樨园网站建设公司
  • 网站搜索排名和什么有关系嘉兴建设局网站
  • 创建免费网站注意事项电商网站建设价格低