SVG基本图形(构建方法和说明)

前言

  SVG 指可伸缩矢量图形 (Scalable Vector Graphics)
  SVG 用来定义用于网络的基于矢量的图形
  SVG 使用 XML 格式定义图形
  SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失
  SVG 是万维网联盟的标准
  SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体
  SVG 于 2003 年 1 月 14 日成为 W3C 推荐标准。

以下内容必须写在<svg></svg>中才能使用!

    <svg  xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height=600>
    </svg>

  svg可通过本身的样式控制图形显示范围,超出部分消失。可以理解为一个盒子(并且加上了绝对定位和溢出隐藏等属性)。
  可以单独写在txt文本中,但要改后缀名为.svg
  也可以写在body里面等等。

1 SVG基本图形

1.1 矩形 <rect>

  rx和ry属性可以产生圆角

               x="矩形的左上角的x轴"
               y="矩形的左上角的y轴"
               rx="x轴的半径(round元素)"
               ry="y轴的半径(round元素)" 
               width="矩形的宽度"。必需的。
               height="矩形的高度"。必需的。
              
               file 填充颜色
               stoke 边框颜色
               stoke-width 边框的宽度
               style

例:<rect x="600" y="20" width="200" height="200" rx="20" ry="20" fill="blue" stroke="orange" stroke-width="20"/>
效果图:在这里插入图片描述

1.2 圆形 <circle>

  如果省略cx和cy,圆的中心会被设置为(0, 0)

               cx="椭圆x轴坐标"
               cy="椭圆y轴坐标"
               r 半径
             
               fill填充颜色
               stroke 边框颜色
               stroke-width 边框宽度

例:<circle cx="800" cy="200"r="80"style="fill:blue;stroke:pink;stroke-width:5;fill-opacity:0.5;stroke-opacity:0.9" ></circle>
效果图:在这里插入图片描述

1.3 椭圆 <ellipse>

               cx="椭圆x轴坐标"
               cy="椭圆y轴坐标"
               rx="沿x轴椭圆形的半径"。必需。
               ry="沿y轴长椭圆形的半径"。必需。
               fill填充颜色
               stroke 边框颜色
               stroke-width 边框宽度

例:<ellipse cx="300"cy="300"rx="120"ry="80"fill="gold" stroke="red" />
效果图:在这里插入图片描述

1.4 线 <line>

               x1="直线起始点x坐标"
               y1="直线起始点y坐标"
               x2="直线终点x坐标"
               y2="直线终点y坐标"
              可+style="fill:颜色;stroke:边框颜色;stoke-width:边框宽度;opacity:透明度;..."

例:<line x1="500" y1="50" x2="600" y2="100" stroke="orange" stroke-width="8" />
效果图:在这里插入图片描述

1.5 折线 <polyline>

              points=折线上的"点"。必需的。
              file  默认的是黑色black
              可+style="fill:颜色;stroke:边框颜色;stoke-width:边框宽度;opacity:透明度;..."

例:<polyline points="0,0 50,50 75,25 100,100 200,50"style="fill:none;stroke:blue;stroke-width:5;"/>
(这个,可加可不加 不加用空格代替)
效果图:在这里插入图片描述

1.6 多边形<polygon>(定义一个包含至少三边图形)

              points="多边形的点。点的总数必须是偶数"。必需的。
              可+style="fill:颜色;stroke:边框颜色;stoke-width:边框宽度;opacity:透明度;..."

      坐标顺序从左往右(顺时针方向)。

例:<polygon points=" 20,20 75,20 150,50 250,20 500,220"fill="none"stroke="green" stroke-width="5"/>
效果图:在这里插入图片描述

1.7 路径 <path>

                下面的命令可用于路径数据:
                M = moveto(移动至)
                L = lineto(画线)
                H = horizontal lineto(横画线)
                V = vertical lineto(垂直画线)
                C = curveto(曲线)
                S = smooth curveto(流畅/光滑 曲线)
                Q = quadratic Belzier curve(二次/平方 贝赛尔曲线)
                T = smooth quadratic Belzier curveto(流畅/光滑 二次/平方 贝赛尔曲线)
                A = elliptical Arc(椭圆弧)
                Z = closepath(关闭路径 默认最后一个坐标)

  所以这个标签理论上能完成上面所有图形。
例:

<path d="M153 334
C153 334 151 334 151 334
C151 339 153 344 156 344
C164 344 171 339 171 334
C171 322 164 314 156 314
C142 314 131 322 131 334
C131 350 142 364 156 364
C175 364 191 350 191 334
C191 311 175 294 156 294
C131 294 111 311 111 334
C111 361 131 384 156 384
C186 384 211 361 211 334
C211 300 186 274 156 274"
style="fill:white;stroke:red;stroke-width:2"/>

效果图:在这里插入图片描述
例:

   <path d="M50 140 A60 60 0 0 0 150 140
            M50 140 A60 160 0 0 0 150 140
            M50 140 A60 250 0 0 0 150 140
            M50 140 A60 30 0 0 0 150 140
   " fill="green" stroke="white" stroke-width="3" />

效果图:在这里插入图片描述
path命令:传送门
参考图:
在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SVG编译器是一种可以将SVG图形文件转换成矢量图形的工具,它可以帮助用户快速地定制设计向量图形。而C和Qt作为编程语言和图形界面工具,可以用来实现SVG编译器的图形基类。 在C语言中,可以使用OpenGL库来实现图形基类。OpenGL是一种跨平台的图形库,可以用来绘制2D和3D图形。C语言中可以使用OpenGL库的接口函数来实现SVG编译器的图形基类。 在Qt的图形框架中,可以使用QWidget类或QGraphicsItem类来实现图形基类。QWidget类是Qt中的基本窗口组件,它可以用来绘制2D图形,并可以添加自定义控件。而QGraphicsItem类是用于创建图形项的基类,它可以用来表示各种形状的图像,并可以添加动画效果和交互功能。 无论是C还是Qt,都可以基于图形库和图形框架来实现SVG编译器的图形基类。通过编写对应的代码,将SVG文件转换成矢量图形,可以帮助用户实现定制设计。同时,在用户使用SVG编译器时,更加友好的交互界面和多种样式的SVG图形设计,可以更好地提高软件的效率和用户的使用体验。 ### 回答2: SVG编译器是一种可以将SVG(可缩放矢量图形)文件转换为其他格式的软件,现在许多应用程序都需要这种功能。C和Qt是编写SVG编译器所需的两个主要技术。 C是一种通用的高级编程语言,其代码执行效率高,所以它在整个计算机科学领域得到广泛应用。编写SVG编译器时,使用C语言可以提高性能,使得程序更快地运行。在使用C语言时,需要使用C标准库、C编译器和管道、文件操作等技术来创建SVG编译器。 Qt是一个用于构建图形界面和应用程序的跨平台应用程序框架,可用于创建Mac、Windows和Linux等操作系统上的GUI应用程序。在编写SVG编译器时,使用Qt可以使程序看起来很专业且易于使用,具有很好的用户体验。Qt拥有丰富的内置工具包,包括控件、图形、网络通信等库,开发者可以根据自己的需要选择使用。你可以编写一个基于Qt的图形基类,实现SVG编译器的第一层UI。 SVG编译器的图形基类是使应用程序看起来简洁且易于使用的重要部分。通过创建和设计具有良好布局和优秀操作的图形基类,可以增强应用程序的用户体验。实现SVG编译器图形基类时,需要考虑窗口大小、按钮位置、文本框位置、滑块大小等,以便用户可以方便地使用它。 综合来看,使用C和Qt的组合可以有效地实现SVG编译器的图形基类,并推进SVG编译器的发展,更好地满足用户的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值