使用Mathematica绘制NURBS曲线

在Mathematica软件中,使用函数BSplineCurve来根据控制顶点绘制NURBS曲线。

BSplineCurve的默认选项有如下:

  • By default, BSplineCurve uses cubic splines;
  • By default, knots are chosen uniformly in parameter space, with additional knots added so that the curve starts at the first control point and ends at the last one;
  • With the default setting SplineWeights->Automatic, all control points are chosen to have equal weights, corresponding to a polynomial B-spline curve;

基本实例:

圆的NURBS曲线表示:

不同节点矢量和权因子的情况:

情况2:

使用软件可对书中的理论进行验证,加深对知识点的理解。

时间: 2024-11-05 16:27:03

使用Mathematica绘制NURBS曲线的相关文章

OpenGL编程轻松入门之NURBS曲线和曲面(1)

上一节讲了一般的曲线与曲面的绘制,本节讲NURBS曲线和曲面的绘制. 例11:此例绘制两个相同形状的NURBS曲面,不同之处是一个为线框式,一个是由实多边形组成.运行后可以看到其中的区别,如图十三所示. #include <windows.h> #include <GL/glut.h> GLUnurbsObj *theNurb1; GLUnurbsObj *theNurb2; GLfloat ctrlpoints[5][5][3] = {{{-3,0.5,0},{-1,1.5,0}

OpenGL编程轻松入门之NURBS曲线和曲面(2)

例12:绘制一个彩色的曲线,曲线闭合成圆.在曲线的边缘绘制8个点,如图十四所示. #include <windows.h> #include <GL/glut.h> GLUnurbsObj *theNurb; GLfloat ctrlpoints[12][3] = {{4,0,0},{2.828,2.828,0},{0,4,0},{-2.828,2.828,0}, {-4,0,0},{-2.828,-2.828,0},{0,-4,0},{2.828,-2.828,0}, {4,0,

用html5的canvas画布绘制贝塞尔曲线完整代码

  html5的canvas很强大利用其画布可轻松绘制贝塞尔曲线,为大家以后使用方便,特于此分享实现代码,有此需求的朋友可以参考下 代码如下:   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w

如何改变ChemBioDraw笔工具绘制的曲线

ChemBioDraw笔工具是用于绘制模板中没有的特殊箭头.轨道以及ChemBioDraw图形元素工具箱未提供的基本图形.ChemBioDraw笔工具在模板之外拥有得天独厚的优越性,可以绘制模板中没有的箭头.轨道或图形,让使用者在绘制软件没有模板的结构时不会焦头烂额. ChemBioDraw笔工具所做图形 笔工具箱的两个子工具比较 [笔]工具箱中有两个子工具,那么这两个在使用步骤或应用效果上有什么区别呢?两个子工具分别为涂鸦式笔工具和连接式笔工具.涂鸦式笔工具可以随意绘制任何曲线,连接式笔工具不

canvas绘制贝塞尔曲线

原文:canvas绘制贝塞尔曲线 1.绘制二次方贝塞尔曲线 quadraticCurveTo(cp1x,cp1y,x,y); 其中参数cp1x和cp1y是控制点的坐标,x和y是终点坐标 数学公式表示如下: 二次方贝兹曲线的路径由给定点P0.P1.P2的函数B(t)追踪: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <

代码-如何从CAD的dxf文件中构造NURBS曲线,并取得插值点,以及控制点、型值点的反算

问题描述 如何从CAD的dxf文件中构造NURBS曲线,并取得插值点,以及控制点.型值点的反算 如何从CAD的dxf文件中构造NURBS曲线,并取得插值点,以及控制点.型值点的反算,如果有现成的代码,并效果良好,可给予一定报酬,如果有思路欢迎指点,QQ:1336947426

Javascript 绘制 sin 曲线过程附图_javascript技巧

Javascript 绘制 sin 曲线代码如下: <!DOCTYPE html> <html> <head> <style type="text/css"> #MyCanvas { background-color: cornflowerblue; } </style> <script type="text/javascript"> function draw(){ var my_canvas

Android Path绘制贝塞尔曲线实现QQ拖拽泡泡_Android

这两天学习了使用Path绘制贝塞尔曲线相关,然后自己动手做了一个类似QQ未读消息可拖拽的小气泡,效果图如下: 最终效果图 接下来一步一步的实现整个过程. 基本原理 其实就是使用Path绘制三点的二次方贝塞尔曲线来完成那个妖娆的曲线的.然后根据触摸点不断绘制对应的圆形,根据距离的改变改变原始固定圆形的半径大小.最后就是松手后返回或者爆裂的实现. Path介绍: 顾名思义,就是一个路径的意思,Path里面有很多的方法,本次设计主要用到的相关方法有 moveTo() 移动Path到一个指定的点 qua

求解答窗体应用程序开发问题--使用绘制线函数绘制贝塞尔曲线

问题描述 贝塞尔曲线是依据四个位置任意的点坐标绘制出的一条光滑曲线.我们不妨把这四对已知点坐标依次定义成(x0,y0).(x1,y1).(x2,y2)和(x3,y3).贝塞尔曲线必定通过首尾两个点,称为端点:中间两个点虽然未必要通过,但却起到牵制曲线形状路径的作用,称作控制点.在历史上,研究贝塞尔曲线的人最初是按照已知曲线参数方程来确定四个点的思路设计出这种矢量曲线绘制法.贝塞尔曲线的公式:如果已知一条曲线的参数方程,系数都已知,并且两个方程里都含有一个参数t,它的值介于0.1之间,表现形式如下