文档章节

GDI+ 学习记录(16): 贝塞尔曲线 - Bezier、Beziers

涂孟超
 涂孟超
发布于 2014/09/26 15:36
字数 218
阅读 13
收藏 0
点赞 0
评论 0
//画贝塞尔曲线
var
  g: TGPGraphics;
  p: TGPPen;
begin
  g := TGPGraphics.Create(Canvas.Handle);
  p := TGPPen.Create(MakeColor(255,0,0),2);

  g.DrawBezier(p, 11,11, 88,333, 99,0, 222,111); {参数是画笔与 4 个点的坐标}

  p.Free;
  g.Free;
end;

 
 
 
 
 

 

 

  
//使用 TGPPoint 或 TGPPointF var g: TGPGraphics; p: TGPPen; const points: array[0..3] of TGPPoint = ((x:11; y:11), (x:88; y:333), (x:99; y:0), (x:222; y:111)); begin g := TGPGraphics.Create(Canvas.Handle); p := TGPPen.Create(MakeColor(255,0,0),2); g.DrawBezier(p, points[0], points[1], points[2], points[3]); {用了 4 个常数点} p.Free; g.Free; end;
//连续 Bezier 线 var g: TGPGraphics; p: TGPPen; pts: array[0..6] of TGPPoint; //数组元素必须是 3 的倍数加 1 begin g := TGPGraphics.Create(Canvas.Handle); p := TGPPen.Create(MakeColor(255,0,0),4); pts[0].X := 77; pts[0].Y := 44; pts[1].X := 66; pts[1].Y := 111; pts[2].X := 88; pts[2].Y := 222; pts[3].X := 111; pts[3].Y := 88; pts[4].X := 132; pts[4].Y := 222; pts[5].X := 222; pts[5].Y := 111; pts[6].X := 256; pts[6].Y := 11; g.DrawBeziers(p, PGPPoint(@pts), Length(pts)); p.Free; g.Free; end;

本文转载自:http://www.cnblogs.com/del/archive/2007/12/27/1017374.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2004
码字总数 14107
作品 0
深圳
程序员
Bezier曲线原理及实现代码(c++)

Bezier曲线原理及实现代码(c++) 2009-06-30 18:50:09| 分类: 数据结构与算法|字号 订阅 一、原理: 贝塞尔曲线于1962年,由法国工程师皮埃尔·贝塞尔(Pierre Bézier)所广泛发表,他运用...

云栖希望。 ⋅ 2017/12/04 ⋅ 0

OpenGL绘制B样条曲线,拖动鼠标控制曲线形变

贝塞尔曲线与B样条曲线算法 Bezier曲线于1962年由法国雷诺汽车公司的P.E.Bezier提出,这是一种以逼近为基础的参数曲线和曲面的设计方法。Bezier曲线的形状是通过一组多边折线(特征多边形)的...

初雪之音 ⋅ 2016/03/16 ⋅ 0

几何画板制作贝塞尔曲线的方法

贝塞尔(Bezier)曲线又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。贝兹曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋。贝塞尔曲线是计算机图形学中相当...

学术研究软件 ⋅ 2016/05/30 ⋅ 0

【iOS-Cocos2d游戏开发之十三】CCSprite利用Bezier(贝塞尔)做抛物线动作并让CCSprite同时播放两个Action动作!

如果我们想实现让CCSprite进行抛物线运动的话,那么我想童鞋们首先会想到利用Box2d或者其他物理引擎去为CCSprite创建物理世界中对应的刚体进行实现,但是反过来想,对于不熟悉Box2d或者其他物...

junwong ⋅ 2012/03/02 ⋅ 0

n阶贝塞尔曲线绘制(C/C#)

贝塞尔是很经典的东西,轮子应该有很多的。求n阶贝塞尔曲线用到了 德卡斯特里奥算法(De Casteljau’s Algorithm) 需要拷贝代码请直接使用本文最后的例程,文章前面的大部分代码都不是最佳实...

Backspace110 ⋅ 2017/05/26 ⋅ 0

CSS3 animation

CSS3 动画分为三大类别:Transitions 、Transforms 、Animations ; 因支持还不是很完善,所以在属性之前,请添加浏览器私有属性 -webk-transition 或者 -moz-transition Transitions基本语法...

石秋风 ⋅ 2012/04/09 ⋅ 0

贝塞尔曲线(Bezier曲线)

贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支点,线...

speclial_wind ⋅ 06/04 ⋅ 0

css3 transition

在哪里定义动画效果? css3动画一般通过鼠标事件或者说状态定义动画,通常我们可以用CSS中伪类和js中的鼠标事件来定义。 动态伪类 起作用的元素 描述 :link 只有链接 未访问的链接 :visited...

fengjian ⋅ 2012/03/19 ⋅ 0

AndroidVector初探

Android--Vector What is it ? 说到androidvector, 就要首先明白什么是Vector & SVG, Vector: 矢量图形是计算机图形学中用点、直线或者多边形等基于数学方程的几何图元表示图像。矢量图形与使...

烟火飘零 ⋅ 2016/09/13 ⋅ 0

【iOS-Cocos2d游戏开发之十三】CCSprite利用Bezier(贝塞尔)做抛物线动作并让CCSprite同时播放两个Action动作!

原文地址:http://blog.csdn.net/xiaominghimi/article/details/6779873 如果我们想实现让CCSprite进行抛物线运动的话,那么我想童鞋们首先会想到利用Box2d或者其他物理引擎去为CCSprite创建...

鉴客 ⋅ 2012/01/15 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

从 Confluence 5.3 及其早期版本中恢复空间

如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话。你可以使用临时的 Confluence 空间安装,然后将这个 Confluence 安装实例升级到你现...

honeymose ⋅ 今天 ⋅ 0

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 今天 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Springboot2 之 Spring Data Redis 实现消息队列——发布/订阅模式

一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式,这里利用redis消息“发布/订阅”来简单实现订阅者模式。 实现之前先过过 redis 发布订阅的一些基础概念和操...

Simonton ⋅ 今天 ⋅ 0

error:Could not find gradle

一.更新Android Studio后打开Project,报如下错误: Error: Could not find com.android.tools.build:gradle:2.2.1. Searched in the following locations: file:/D:/software/android/andro......

Yao--靠自己 ⋅ 昨天 ⋅ 0

Spring boot 项目打包及引入本地jar包

Spring Boot 项目打包以及引入本地Jar包 [TOC] 上篇文章提到 Maven 项目添加本地jar包的三种方式 ,本篇文章记录下在实际项目中的应用。 spring boot 打包方式 我们知道,传统应用可以将程序...

Os_yxguang ⋅ 昨天 ⋅ 0

常见数据结构(二)-树(二叉树,红黑树,B树)

本文介绍数据结构中几种常见的树:二分查找树,2-3树,红黑树,B树 写在前面 本文所有图片均截图自coursera上普林斯顿的课程《Algorithms, Part I》中的Slides 相关命题的证明可参考《算法(第...

浮躁的码农 ⋅ 昨天 ⋅ 0

android -------- 混淆打包报错 (warning - InnerClass ...)

最近做Android混淆打包遇到一些问题,Android Sdutio 3.1 版本打包的 错误如下: Android studio warning - InnerClass annotations are missing corresponding EnclosingMember annotation......

切切歆语 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部