QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 3991|回复: 12
收起左侧

[求助] 怎样在草图中实现贝塞尔(Bezier)曲线呢??江湖告急!!

[复制链接]
发表于 2009-3-6 20:05:46 | 显示全部楼层 |阅读模式 来自: 中国湖北武汉

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
画图要用到贝塞尔曲线,但sw中没有这种曲线,怎么办??各位大哥大姐帮帮忙,谢谢了!!!
发表于 2009-3-6 20:13:02 | 显示全部楼层 来自: 中国上海
SW中没有的曲线类型太多了,楼主你自己用方程计算出座标值,再用样条曲线近似表示吧~~~
发表于 2009-3-6 20:13:14 | 显示全部楼层 来自: 中国广东广州
恕我无知 ,我还真不了解这种曲线。  z4 v; [( g4 L# g' M; h( ]0 R
新会员一来就给我们这个区出了一道难题,请高手现身!
发表于 2009-3-6 21:10:59 | 显示全部楼层 来自: 中国北京
【简介】
& Q2 C# h9 a$ i: B  贝塞尔曲线又称贝兹曲线或贝济埃曲线,一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋,我们在绘图工具上看到的钢笔工具就是来做这种矢量曲线的。当然在一些比较成熟的位图软件中也有贝塞尔曲线工具,如PhotoShop等。在Flash4中还没有完整的曲线工具,而在Flash5里面已经提供出贝塞尔曲线工具。 ( Y$ }) ^* k- P6 M' S" A! W
  贝塞尔曲线是应用于二维图形应用程序的数学曲线。曲线的定义有四个点:起始点、终止点(也称锚点)以及两个相互分离的中间点。滑动两个中间点,贝塞尔曲线的形状会发生变化。二十世纪六十年代晚期,Pierre Bézier应用数学方法为雷诺公司的汽车制造业描绘出了贝塞尔曲线。
- x7 L, T, C4 d  【命名】8 {$ J/ h% P& T* {
  贝塞尔曲线就是这样的一条曲线,它是依据四个位置任意的点坐标绘制出的一条光滑曲线。在历史上,研究贝塞尔曲线的人最初是按照已知曲线参数方程来确定四个点的思路设计出这种矢量曲线绘制法。贝塞尔曲线的有趣之处更在于它的“皮筋效应”~也就是说,随着点有规律地移动,曲线将产生皮筋伸引一样的变换,带来视觉上的冲击。1962年,法国数学家Pierre Bézier第一个研究了这种矢量绘制曲线的方法,并给出了详细的计算公式,因此按照这样的公式绘制出来的曲线就用他的姓氏来命名~是为贝塞尔曲线。+ |) V6 @+ ^5 g; o, N
【作用】
& U  ~' Q% v# q+ `  由于用计算机画图大部分时间是操作鼠标来掌握线条的路径,与手绘的感觉和效果有很大的差别。即使是一位精明的画师能轻松绘出各种图形,拿到鼠标想随心所欲的画图也不是一件容易的事。这一点是计算机万万不能代替手工的工作,所以到目前为止人们只能颇感无奈。使用贝塞尔工具画图很大程度上弥补了这一缺憾。 * d, C; i% m- `& P
  贝塞尔曲线是计算机图形图像造型的基本工具,是图形造型运用得最多的基本线条之一。它通过控制曲线上的四个点(起始点、终止点以及两个相互分离的中间点)来创造、编辑图形。其中起重要作用的是位于曲线中央的控制线。这条线是虚拟的,中间与贝塞尔曲线交叉,两端是控制端点。移动两端的端点时贝塞尔曲线改变曲线的曲率(弯曲的程度);移动中间点(也就是移动虚拟的控制线)时,贝塞尔曲线在起始点和终止点锁定的情况下做均匀移动。注意,贝塞尔曲线上的所有控制点、节点均可编辑。这种“智能化”的矢量线条为艺术家提供了一种理想的图形编辑与创造的工具。6 ~1 |/ ~: P3 c# r9 r
【发现者】
7 N  q* Q. d  x; S  “贝赛尔曲线”是由法国数学家Pierre Bézier所发现,由此为计算机矢量图形学奠定了基础。它的主要意义在于无论是直线或曲线都能在数学上予以描述。
! }. D$ J1 H; _2 n% `! D- e【贝赛尔工具】7 S+ {& f5 S3 g3 e$ x
  “贝赛尔”工具在photoshop中叫“钢笔工具”;在CorelDraw中翻译成“贝赛尔工具”;而在Fireworks中叫“画笔”。它是用来“画线”造型的一种专业工具。当然还有很多工具也可以完成画线的工作,例如大家常用的photoshop里的直线、喷枪、画笔工具,Fireworks里的直线、铅笔和笔刷工具,CorelDraw里的自由笔,手绘工具等等。
6 S- `, Y: w, A% i) ^  用“贝塞尔”工具无论是画直线或是曲线,都非常简单,随手可得。其操作特点是通过用鼠标在面板上放置各个锚点,根据锚点的路径和描绘的先后顺序,产生直线或者是曲线的效果。我们都知道路径由一个或多个直线段或曲线段组成。锚点标记路径段的端点。在曲线段上,每个选中的锚点显示一条或两条方向线,方向线以方向点结束。方向线和方向点的位置确定曲线段的大小和形状。移动这些元素将改变路径中曲线的形状,可以看右图。路径可以是闭合的,没有起点或终点(如圆圈),也可以是开放的,有明显的端点(如波浪线)。
! ?( ]3 r4 Y9 M- I* N[编辑本段]【CorelDRAW贝塞尔曲线的使用方法】, d' I+ U+ s4 A( h  i% Y9 J
  贝塞尔曲线跟PS里的钢笔的意思大概差不多,不过贝塞尔曲线没有选取的功能。在这里,要切记,不要和轮廓工具弄混,前者是通过调节点调节形状,后者是调节形状轮廓的粗细以及样式。* g/ G! `: t8 e8 Z8 O3 C% d. l
  补充几点:
# a- T) j" m1 M/ P: Z+ E  1、在任意工具情况下,在曲线上双击都可以换为形状工具对曲线进行编辑;
6 }" q1 m* f+ U" X7 w9 A  2、在曲线上用形状工具双击可以增加一个节点;1 ^9 I) h: J8 Q7 [5 Y" \  Q; V2 o
  3、在曲线的节点上双击形状工具可以删除一个节点;) j4 a0 ~1 u. n3 p3 k2 Q5 K
  4、位图可以用形状工具点击再拖动某一点可以进行任意形状的编辑;
* p; l. }- |' f, U/ u- u  5、用形状工具同时选中几个节点可以进行移动;
( G. q9 e  l" K7 t  6、在微调距离中设定一个数值再用形状工具选中曲线的某一节点敲方向箭头可以进行精确位移;% j& Y# R0 ]8 f! M9 |  d
  7、将某一个汉字或字母转换为曲线就可以用形状工具进行修理如将“下”的右边的点拿掉等。
& B8 Z8 I2 ]2 f9 M- h- ^
3 Y5 \* q: e* a+ o. f' b2 ?[ 本帖最后由 hux0730 于 2009-3-6 21:15 编辑 ]
发表于 2009-3-6 21:13:48 | 显示全部楼层 来自: 中国北京
个人感觉,样条曲线中的不在曲线上的那些控制点就是该工具。
 楼主| 发表于 2009-3-6 21:21:27 | 显示全部楼层 来自: 中国湖北武汉

回复 5# hux0730 的帖子

感谢回答。但拒我所知,样条曲线和贝塞尔曲线是不同的曲线绘制方法,我估计是不是应该用宏来实现
发表于 2009-3-7 10:33:59 | 显示全部楼层 来自: 中国浙江温州
跑题了,说是在SW中如何表达这个曲线,当然介绍概念是必须的,但问题还有解决,望高手出现..
发表于 2009-3-7 12:37:19 | 显示全部楼层 来自: 中国浙江台州
:o  极点和阶数 学习了可能以后用到
发表于 2009-3-7 13:07:15 | 显示全部楼层 来自: 中国上海
这两天在这里下点东西,也帮新人解答些问题好了(我也很反感复制粘贴答非所问的答案)  H# q6 \" |  N+ n5 w( E
Bezier只是一种通过已知点构造平滑样条曲线的方法,草图里的自由样条曲线就完全满足这个条件,还可以通过锚点控制相切重量,名称不同而已。
. C0 L' t6 X' N2 Y. h当然,如果曲线特殊有方程约束,这里也送上一个曲线宏以描出需要曲线(笛卡尔坐标系,自己换宏里方程)。代码很简单就不注释了。* ]! \, L8 T; |& \, @7 v
Dim swApp As Object
! r* I  f8 ~. n6 M% e) {) ySub main()
$ r5 g1 ]# p2 e  G8 D5 B- L/ B. E    Set swApp = Application.SldWorks
& ?" a% b/ V9 i* a% U8 F# |, e0 B    Set Part = swApp.NewPart1 M" q$ c3 x. B/ q# x
    Set Part = swApp.ActiveDoc
5 Q5 s$ v! x% D8 l; w" m( N
$ A8 y1 f3 G4 L: S4 a    tMax = 3.1415926. P/ U5 S2 t2 c* ~
    tMin = 0. d8 l% C; y! R- y+ W; Q0 M  O
    tStep = 0.1$ {( x8 r$ N& I5 Q6 y7 C' D
    n = Int((tMax - tMin) / tStep)0 \1 g- G2 \* J* Q9 r$ H

4 I3 m% O. X# h! p2 I    Set SelMgr = Part.SelectionManager' k. ]$ ]) Q; k# c
    Part.Insert3DSketch
* A4 n) F/ X- ~/ k1 _    Part.SetPickMode9 }* e5 {6 U5 X% r3 a% y& P
) n8 F  k- v9 E. O3 Y& B
For t = tMin To tMax Step tStep
" k) _+ c) D/ P4 ?: ]" U  
+ f+ v# }$ Z1 x- P( UX = 10 * Cos(t) + 10 * 180 * t / 180 * Sin(t)+ m* T- G' X2 F  y3 |
Y = 10 * Sin(t) - 180 * 10 * t / 180 * Cos(t)
- E: H# [, x3 y  S- h' nZ = 0
* `. l& q5 P& t5 R
) I  g# w* v$ `! v0 g3 KPart.SketchSpline n, 0.001 * X, 0.001 * Y, 0.001 * Z
& H1 j# Z0 I0 [1 [2 `! ?# c6 G4 ~1 m! C( `) r: m: Q$ x( B
n = n - 1" |5 Y, {" ~: X% [6 x0 w  @' K
3 x4 K0 i; ]9 W; D2 X, I! b
Next t3 O% c6 a, z4 {% E2 W% F

  ?, W+ v" @2 P' h& q/ J1 G/ P7 tPart.SketchManager.InsertSketch True3 {5 e9 R5 w5 H! X, \
Part.ClearSelection2 True( ]) l/ X5 @& t
End Sub
6 R+ V4 k6 T; g: ^- \; R& {) m; l; M  w" Q2 v
以上
头像被屏蔽
发表于 2009-3-7 15:04:28 | 显示全部楼层 来自: 中国辽宁营口
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2009-3-8 10:27:32 | 显示全部楼层 来自: 中国四川德阳
好贴,一定要顶一下。人多真的力量大呢
发表于 2009-3-19 13:15:57 | 显示全部楼层 来自: 中国北京
其实SW中的样条曲线就是样条曲线,画出来的曲线和调整方法并无二样
发表于 2009-3-19 13:22:53 | 显示全部楼层 来自: 中国山东烟台
用coreldraw画图,然后导出为dwg,再用solidworks打开! titter titter
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

快速回复 返回顶部 返回列表