首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Bezier曲线绘制B-Spline?

如何使用Bezier曲线绘制B-Spline?
EN

Stack Overflow用户
提问于 2011-08-28 06:56:26
回答 1查看 1.5K关注 0票数 2

我的Flash应用程序从外部应用程序接收B-spline数据,但是Flash绘图API只允许使用Graphics#curveTo()方法绘制二次贝塞尔曲线。

是否可以将B-spline转换为一系列curveTo()调用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-28 08:52:32

有多种类型的B样条曲线。不过,我想你会把B样条分割成贝塞尔曲线。您将遍历曲线,并且对于每一条曲线,您将以特定的细节遍历这些点,以便能够从直线绘制曲线。

下面是一个简短的代码片段:

代码语言:javascript
复制
private function curve(control1:Point,anchor1:Point,control2:Point,anchor2:Point,t:Number):Point{
            var result:Point = new Point();
            var tSquared:Number = t*t;
            var tCubed:Number = t*t*t;
            result.x = tCubed*(anchor2.x+3*(control1.x-control2.x)-anchor1.x)
                                        +3*tSquared*(anchor1.x-2*control1.x+control2.x)
                                        +3*y*(control1.x-anchor1.x)+anchor1.x;
            result.y = tCubed*(anchor2.y+3*(control1.y-control2.y)-anchor1.y)
                                        +3*tSquared*(anchor1.y-2*control1.y+control2.y)
                                        +3*y*(control1.y-anchor1.y)+anchor1.y;
            return result;
        }

看看Paul Tondeur's Drawing a cubic curve blog entry和那里的参考资料吧。

HTH

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7217911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档