[英]How to draw S- Curve in SVG?
所以最簡單的方法就是旋轉你的形狀:
transform="(-90, 50, 50)"
<svg viewbox="0 0 100 100" width="200" height="200"> <path transform="rotate(-90, 50, 50)" d="M0,0 L100,0 C25,50 50,75 0,100z"/> </svg>
但是讓我向您解釋路徑命令是如何工作的……最后,我們將為您的旋轉問題提供更好的解決方案……
所以讓我們看看你的路徑命令。
"M0,0 L100,0 C25,50 50,75 0,100z"
M0,0
表示移動到坐標0,0
,即圖像的左上角。
L100,0
是要從當前點 (0,0) 到點100,0
繪制一條線的命令線。 向右100
和向下0
是右角。
接下來是命令C25,50 50,75 0,100
的曲線。 最后兩個數字是路徑結束的坐標。 0,100
是您的左下角。 然后你有兩個控制點。 為了更好地理解這些,我在原始繪圖的每個坐標處添加了一個圓圈:
<svg viewbox="0 0 100 100" width="200" height="200"> <path d="M0,0 L100,0 C25,50 50,75 0,100z" opacity="0.5"/> <g> <line x1="100" y1="0" x2="25" y2="50" stroke="green" stroke-width="0.5"/> <circle cx="25" cy="50" r="2" fill="green"/> </g> <g> <line x1="0" y1="100" x2="50" y2="75" stroke="blue" stroke-width="0.5"/> <circle cx="50" cy="75" r="2" fill="blue"/> </g> </svg>
如您所見,控制點決定曲線端點處的角度以及曲線本身的斜率。
所以要旋轉你的曲線,我們再次從端點開始:
你的左上角 (0,0) 將在左下角 (0,100) 結束。
M0,100
那么命令的行將在左上角L0,0
並且命令的曲線將在右下角結束 (100,100)
Cx1,y1 x2,y2 100,100
但是在哪里繪制控制點?
您的第一個控制點 (25,50) 將從底部到 25,從左邊到 50,所以在50,75
您的第二個控制點必須在右側 25 處和底部 50 處結束。 所以在75,50
所以命令的曲線如下所示: C50,75 75,50 100,100
總結一下,這是你的旋轉路徑:
<svg viewbox="0 0 100 100" width="200" height="200"> <path d="M0,100 L0,0 C50,75 75,50 100,100z" opacity="0.5" fill="red" /> <g> <line x1="0" y1="0" x2="50" y2="75" stroke="red" stroke-width="0.5"/> <circle cx="50" cy="75" r="2" fill="red"/> </g> <g> <line x1="100" y1="100" x2="75" y2="50" stroke="red" stroke-width="0.5"/> <circle cx="75" cy="50" r="2" fill="red"/> </g> </svg>
為了准確地重復圖中的曲線形狀,您需要將圖像加載到矢量編輯器中。 並沿輪廓繪制節點
將文件另存為 SVG。 並僅將路徑復制到另一個文件
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="100vw" height="100vh" viewBox="0 0 688 535" preserveAspectRatio="xMinYMin meet"> <path d="m4.8 11.6c0 0 34.3 55.4 56.1 79.3 25.6 28.2 55.7 52.3 86.6 74.5 36.1 26 75.7 46.7 114.6 68.1 26.5 14.5 54 27.3 81 40.9 27 13.6 54.2 26.8 81 40.9 23.2 12.2 46.6 23.9 68.9 37.7 27.6 17 54.9 35 80.1 55.3 25.6 20.6 50.3 42.7 72.1 67.3 13.2 14.9 35.3 48.1 35.3 48.1H4.8Z" style="fill:#5B7E95;stroke:none"/> </svg>
您可以使用任何可用的在線 PNG 到 SVG 轉換器工具。 還有許多開源站點可用於免費手繪。 例子
要將 PNG 轉換為 SVG,您可以使用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.