svg path属性解释

大写字母:绝对定位

小写字母:相对定位(所有点仅相对于起点)

不了解贝塞尔曲线点这里

 

M = moveto

M x y 移动到指定坐标,xy分别为x轴和y轴的坐标点,类似画笔的起点。

path中的起点,必须存在(文档中虽然没有提到过,但是path的其他命令都需要依赖一个初始位置,而实际操作过程中也没有需要到可以不使用M的情况,后面发现有例外我再过来补充。

L = lineto

L x1,y1 x2,y2

L x1 y1 x2 y2

L x1 y1 在初始位置(M 画的起点)和x2 y2确定的坐标画一条线。(起点到x1 y1也有一条直线)
两点一线,直线,绘图中很常见的方式。

H = horizontal lineto

H xlength

H x 沿着x轴移动一段位置 

V = vertical lineto

V ylength

V y 沿着y轴移动一段位置

C = curveto

C x1 y1 x2 y2 x y
三次贝塞尔曲线
当前点为起点,x y为终点,起点和x1 y1控制曲线起始的斜率,终点和x2 y2控制结束的斜率。

S = smooth curveto

S x2 y2 x y
简化的贝塞尔曲线
1.如果S命令跟在一个C命令或者另一个S命令的后面,它的第一个控制点,就会被假设成前一个控制点的对称点。

2.如果S命令单独使用,前面没有C命令或者另一个S命令,那么它的两个控制点就会被假设为同一个点。

Q = quadratic Bézier curve

Q x1 y1 x y
二次贝塞尔曲线Q
只需要一个控制点,用来确定起点和终点的曲线斜率。因此它需要两组参数,控制点和终点坐标。

T = smooth quadratic Bézier curveto

Q命令的简写命令。</br>
与S命令相似,T也会通过前一个控制点,推断出一个新的控制点。
1.T命令前面必须是一个Q命令,或者是另一个T命令

2.如果T单独使用,那么控制点就会被认为和终点是同一个点,所以画出来的将是一条直线

A = elliptical Arc

A rx,ry x-axis-rotation large-arc-flag sweep-flag x,y
rx 弧的半长轴长度
ry 弧的半短轴长度
x-axis-rotation 是此段弧所在的x轴与水平方向的夹角,即x轴的逆时针旋转角度,负数代表顺时针旋转角度。
large-arc-flag 为1表示大角度弧线,0表示小角度弧线
sweep-flag 为1表示从起点到终点弧线绕中心顺时针方向,0表示逆时针方向。
xy 是终点坐标。

Z = closepath

 从当前位置到起点画一条直线闭合。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SVGPath 在 JavaFX 也是一个节点类,所以你可以像调整其他节点一样来调整 SVGPath 的大小。常用的方法有: 1. 设置宽高:可以使用 SVGPath 的 setPrefWidth() 和 setPrefHeight() 方法来设置 SVGPath 的宽高。 ```java SVGPath svgPath = new SVGPath(); svgPath.setContent("M150 0 L75 200 L225 200 Z"); svgPath.setPrefWidth(200); svgPath.setPrefHeight(200); ``` 2. 设置缩放:可以通过设置 SVGPath 的缩放比例来调整其大小。可以使用 CSS 的 transform 属性来缩放 SVGPath。 ```java SVGPath svgPath = new SVGPath(); svgPath.setContent("M150 0 L75 200 L225 200 Z"); svgPath.setStyle("-fx-scale-x: 2; -fx-scale-y: 2;"); ``` 这里的 -fx-scale-x 和 -fx-scale-y 属性设置了 SVGPath 沿着 X 和 Y 轴的缩放比例,这个例子SVGPath 沿着 X 和 Y 轴都放大了两倍。 3. 设置布局参数:如果 SVGPath 是在布局容器被使用的,可以通过设置布局参数来调整其大小。例如,可以使用 HBox 或 VBox 容器来包装 SVGPath,并使用容器的 setPrefWidth() 和 setPrefHeight() 方法来调整 SVGPath 的大小。 ```java SVGPath svgPath = new SVGPath(); svgPath.setContent("M150 0 L75 200 L225 200 Z"); HBox hbox = new HBox(); hbox.getChildren().add(svgPath); hbox.setPrefWidth(200); hbox.setPrefHeight(200); ``` 需要注意的是,SVGPath 是基于矢量图形的描述,它可以自由缩放而不会失真,但如果缩放过大可能会导致显示效果不佳。因此,在调整 SVGPath 大小时需要根据具体情况进行权衡和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值