matlab练习程序(贝塞尔曲线)(代码片段)

tiandsp tiandsp     2022-12-20     145

关键词:

下面三个公式分别是一次、二次和三次贝塞尔曲线公式:

技术图片

技术图片

技术图片

通用的贝塞尔曲线公式如下:

技术图片

可以看出,系数是由一个杨辉三角组成的。

这里的一次或者二次三次由控制点个数来决定,次数等于控制点个数-1。

实现的效果如下:

技术图片

技术图片

代码如下:

clear all;
close all;
clc;

p=ginput();
plot(p(:,1),p(:,2),b-o);

N=length(p);    %确定贝塞尔阶数(控制点个数-1)
t=zeros(N,N);

M=100;  %确定贝塞尔曲线点的个数

%计算杨辉三角
for i=1:N
    t(i,1) = 1;
    t(i,i) = 1;
end
if N>=3
    for i=3:N
        for j=2:i-1
            t(i,j) = t(i-1,j-1)+t(i-1,j);
        end
    end
end

%根据公式计算贝塞尔曲线
re=zeros(M,2);
for i=1:M
    step = i/M;
    for k=0:N-1
        re(i,1) = re(i,1) + (1-step)^(N-k-1)*p(k+1,1)*step^k*t(N,k+1); %t替换为nchoosek(N-1,k),不用计算杨辉三角了;
        re(i,2) = re(i,2) + (1-step)^(N-k-1)*p(k+1,2)*step^k*t(N,k+1); %t替换为nchoosek(N-1,k),不用计算杨辉三角了; 
    end 
end

hold on;
plot(re(:,1),re(:,2),r);

注意,运行时要先点几下输入控制点,然后按回车键来进行确认。

参考:

https://www.jianshu.com/p/0c9b4b681724

https://baike.baidu.com/item/%E8%B4%9D%E5%A1%9E%E5%B0%94%E6%9B%B2%E7%BA%BF/1091769?fr=aladdin

matlab练习程序(修正指数曲线拟合)(代码片段)

对于一般的指数曲线如:y=a*e^(k*t),可以先对两边求对数得到:log(y)=log(a)+k*t这样的曲线,然后用最小二乘来计算系数。但是对于修正指数曲线如:y=k+a*b^t这样的函数,没法直接求对数然后用最小二乘,因为有一个常数项k,这里... 查看详情

贝塞尔曲线wpfmvvmn阶实现公式详解+源代码下载(代码片段)

源代码下载效果图:  本程序主要实现:N阶贝塞尔曲线(通用公式)本程序主要使用技术MVVMInterAction事件绑定动态添加Canvas的Item 第一部分公式:   n=有效坐标点数量 i=坐标点的下标 P是坐标 t是... 查看详情

android自定义view高级特效,神奇的贝塞尔曲线(代码片段)

...效果图效果图中我们实现了一个简单的随手指滑动的二阶贝塞尔曲线,还有一个复杂点的,穿越所有已知点的贝塞尔曲线。学会使用贝塞尔曲线后可以实现例如QQ红点滑动删除啦,360动态球啦,bulabulabula~什么是贝... 查看详情

markdown贝塞尔曲线(代码片段)

查看详情

n阶贝塞尔曲线画法(代码片段)

N阶贝塞尔曲线画法涉及知识:贝塞尔曲线牛顿二项式杨辉三角组合数代码:/***@briefcreateNBezierCurve生成N阶贝塞尔曲线点*@paramsrc源贝塞尔控制点*@paramdest目的贝塞尔曲线点*@paramprecision生成精度*/staticvoidcreateNBezie... 查看详情

python路径平滑贝塞尔曲线优化(代码片段)

python路径平滑(3)贝塞尔曲线优化python路径优化(1)多项式曲线优化python路径平滑(2)指定函数曲线优化python路径平滑(3)贝塞尔曲线优化贝塞尔曲线图示这篇博文里有贝塞尔曲线的动态绘制方... 查看详情

python路径平滑贝塞尔曲线优化(代码片段)

python路径平滑(3)贝塞尔曲线优化python路径优化(1)多项式曲线优化python路径平滑(2)指定函数曲线优化python路径平滑(3)贝塞尔曲线优化贝塞尔曲线图示这篇博文里有贝塞尔曲线的动态绘制方... 查看详情

n阶贝塞尔曲线(代码片段)

...博客:https://ylong765.github.io/Yinl-Blog/欢迎关注,同步更新贝塞尔曲线本文章借鉴自Unity中的曲线绘制.贝塞尔曲线(Béziercurve)是由法国数学家PierreBézier所提出,类似于Photoshop软件中的钢笔工具,不过钢笔工具仅仅只是用了二阶贝塞尔曲... 查看详情

贝塞尔曲线实现购物车飞入效果(代码片段)

代码地址如下:http://www.demodashi.com/demo/12618.html前言做了一个模仿添加物品飞入购物车效果的例子,下面来讲讲它的简单使用将涉及到以下内容:工具类的使用项目结构图与效果图程序设计与实现一.工具类设计工具类比较多代码... 查看详情

贝塞尔曲线wpfmvvmn阶实现公式详解+源代码下载(代码片段)

原文:贝塞尔曲线WPFMVVMN阶实现公式详解+源代码下载源代码下载效果图:  本程序主要实现:N阶贝塞尔曲线(通用公式)本程序主要使用技术MVVMInterAction事件绑定动态添加Canvas的Item 第一部分公式:   n=有效... 查看详情

androidui贝塞尔曲线⑥(贝塞尔曲线递归算法原理|贝塞尔曲线递归算法实现)(代码片段)

文章目录一、贝塞尔曲线递归算法二、贝塞尔曲线递归算法实现贝塞尔曲线参考:https://github.com/venshine/BezierMaker一、贝塞尔曲线递归算法一阶贝塞尔曲线(起止点+000个控制点=222个点)是一条直线,贝塞尔曲线上的点就是直线上... 查看详情

c语言实现贝塞尔曲线无聊人士专用程序,ps钢笔工具最初原形~(代码片段)

简介动态演示贝塞尔曲线的绘制过程。支持任意点数、任意阶次。点击鼠标右键,在鼠标位置将创建新的点。按住鼠标左键拖动控制点。空格键屏幕将清空。一起来玩一玩吧!运行效果 源码//程序名称:贝塞尔曲线//... 查看详情

c语言实现贝塞尔曲线无聊人士专用程序,ps钢笔工具最初原形~(代码片段)

简介动态演示贝塞尔曲线的绘制过程。支持任意点数、任意阶次。点击鼠标右键,在鼠标位置将创建新的点。按住鼠标左键拖动控制点。空格键屏幕将清空。一起来玩一玩吧!运行效果 源码//程序名称:贝塞尔曲线//... 查看详情

wpf:绘制光滑连续贝塞尔曲线(代码片段)

...求WPF本身没有直接把点集合绘制成曲线的函数。可以通过贝塞尔曲线函数来绘制。  贝塞尔曲线类是:BezierSegment,三次贝塞尔曲线,通过两个控制点来控制开始和结束方向。QuadraticBezierSegment,二次贝塞尔,通过一个控制点来... 查看详情

flutter-贝塞尔曲线(代码片段)

import‘package:flutter/material.dart‘;classHomePageextendsStatelessWidget@overrideWidgetbuild(BuildContextcontext)returnScaffold(body:Column(children:<Widget>[ClipPath(clipper:BottomClipper(), 查看详情

android初识贝塞尔曲线(代码片段)

贝塞尔曲线在Android自定义View中广泛使用,例如:短视频点赞,书面翻页效果等。我们先来补补贝塞尔的由来:贝塞尔曲线于1962年,由法国工程师皮埃尔·贝塞尔(PierreBézier)所广泛发表,他运用... 查看详情

css自定义三次贝塞尔曲线(代码片段)

查看详情

css自定义三次贝塞尔曲线(代码片段)

查看详情