快捷导航
蚂蚁部落 网站首页 前端教程 SVG教程 查看内容

栏目导航

SVG <path>元素C指令三次贝塞尔曲线

2017-2-1 09:53| 发布者: admin| 查看: 343| 评论: 0|来自: 蚂蚁部落

关于<path>元素的基本用法可以参阅SVG <path>路径元素一章节。

二次贝塞尔曲线可以参阅SVG <path>元素Q指令二次贝塞尔曲线一章节。

二次贝塞尔曲线只能够在一侧弯曲,因为只有一个控制点。

而三次贝塞尔曲线则有两个控制点,可以绘制出两侧都有弯曲的曲线。

语法结构如下:

[XML] 纯文本查看 复制代码
C cp1x cp1y , cp2x cp2y , x y

参数解析如下:

(1).cp1x cp1y规定第一个控制点的坐标。

(2).cp2x cp2y规定第二个控制点的坐标。

(3). x y规定赛贝尔曲线的结束点坐标。

看一段代码实例:

[HTML] 纯文本查看 复制代码运行代码
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<style>
svg {
  border: 1px solid red;
  margin: 100px;
  width: 300px;
  height: 300px;
}
</style>
</head>
<body>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <path d="M20,20
        C20,100 200,100 200,20"
        stroke="black"
        fill="none"
        stroke-width="1"/>
  </svg>
</body>
</html>

上面的代码可以用下面的图示表示:

1.gif

特别说明:黑色的曲线是真正绘制出的贝塞尔曲线,黄色的只是辅助线。

可以看到开始点与控制点1连成的线段与曲线是相切的,结束点与控制点2连成的线段也是相切的。

不是说bezierCurveTo()可以绘制出两侧都有完全的曲线吗,为什么上面只有一个弯曲。

这是因为控制点都在开始点与结束点连线的一侧,如果控制1和控制点2一边一个,那么就会出现两个弯曲。

代码实例如下:

[HTML] 纯文本查看 复制代码运行代码
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<style>
svg {
  border: 1px solid red;
  margin: 100px;
  width: 300px;
  height: 300px;
}
</style>
</head>
<body>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <path d="M20,20
        C20,100 200,20 200,50"
        stroke="black"
        fill="none"
        stroke-width="1"/>
  </svg>
</body>
</html>

鲜花

握手

雷人

路过

鸡蛋

最新评论

关于我们|手机版|小黑屋| 蚂蚁部落 ( 鲁ICP备10022556号-3 )

GMT+8, 2017-6-27 16:51 , Processed in 0.060558 second(s), 21 queries .

Powered by Discuz! X3.2 Licensed

Copyright © 2012-2017 Design: 蚂蚁部落

返回顶部