SVG基础|SVG坐标系统和图形转换

May 17, 2016 am 09:07 AM
h

4.jpg

  SVG坐标系统

  坐标系统

  一个普通的笛卡尔坐标系统的坐标原点(0,0)位于左下角位置,X轴方向上向右是正值,向左是负值。Y轴方向上向上是正值,向下是负值。如下图所示:
2.jpg
  而SVG的坐标系统坐标原点位于左上角,X轴和笛卡尔坐标系的X轴相同,但是Y轴则刚好相反,如果SVG中点或图形数值增加时往下增长,而不是往上。如下图所示:
3.jpg
  SVG坐标系统的单位

  你可以指定在SVG坐标系统值1个单位代表什么。如果你没有明确的指定单位,将会使用像素(px)为单位。下面是SVG元素可以使用的单位:

  •   em:默认的字体大小,通常一个字符的高度
  •   ex:字符x的高度
  •   px:像素
  •   pt:点数,1/72英寸
  •   pc:Picas,1/6英寸
  •   cm:厘米
  •   mm:毫秒
  •   in:英寸

  SVG元素转换-TRANSFORM属性

  SVG元素可以被缩放,移动,倾斜和旋转,就像HTML元素可以使用CSS来转换一样。但是因为坐标系统不同,SVG和HTML元素的转换时有差别的。

  TRANSFORM属性

  transform用于在一个元素上指定一个或多个转换效果。它使用一系列预定义的值作为参数,并按先后顺序逐一应用到元素上。

  SVG可用的转换有:旋转,位移,倾斜和旋转。SVG的transform属性和CSS的transform相似,但是它们的参数不同。

  矩阵

  你可以在一个SVG元素上通过matrix()函数来应用一个或多个转换。矩阵转换的语法是:
复制代码
  上面的声明指定包含6个参数的矩阵变换。matrix(a,b,c,d,e,f)相当于matrix [a b c d e f]。
 
  位移

  要移动一个SVG元素,你可以使用translate()函数。位移的语法是:
  1. translate( [])   
复制代码

  translate()函数可以带一个或两个参数,分别用于表示水平或垂直的位移。

  ty参数是可选的,如果没有指定,它默认是0。tx和ty参数可以使用空格隔开,也可以使用逗号隔开,还有它们不需要使用单位。它们的单位使用的是用户坐标系统的单位。

  下面的例子将一个SVG元素向右移动100个用户单位,向下移动300个用户单位。
  1.   
复制代码
  上面的转换代码也可以写为:translate(100, 300),使用逗号隔开参数。

  缩放

  你可以使用scale()函数来缩放SVG元素。缩放的语法是:
  1. scale( [])      
复制代码

  scale()函数可以带一个或两个参数,分别表示水平或垂直方向上的缩放。

  sy参数是可选值,如果没有指定,它等于sx的值。sx和sy参数可以使用空格或逗号隔开。并且它们是无单位的数字。

  下面的例子将一个SVG元素放大到原来尺寸的2倍。
  1.                
复制代码

  下面的例子将SVG元素水平方向放大2倍,垂直方向缩小一半。
  1.          
复制代码

  同样,我们可以使用逗号来分隔scale()函数的参数,上面的代码可以写为:scale(2, .5)。

  这里要注意:当一个SVG元素被缩放的时候,整个当前坐标系统也会被同时缩放,导致元素会在viewport中被重新定位。

  倾斜

  一个SVG元素也可以被倾斜。要倾斜一个SVG元素,你需要使用skewX或skewY函数。语法如下:
  1. skewX()
  2. skewY()        
复制代码

  skewX函数指定元素绕X旋转,skewY函数指定元素绕Y轴旋转。

  旋转角度使用的是一个无单位的角度值,默认单位是度(degrees)。

  注意,元素倾斜也可能会是元素在viewport中重新定位。

  旋转

  你可以使用rotate()函数来旋转一个SVG元素。语法如下:
  1. rotate( [ ])   
复制代码

  rotate()函数通过rotate-angle来指定旋转角度。于CSS转换中的 rotation 不同,你不能为旋转角度指定单位,只能使用度(degrees)为单位。角度值使用的是无单位的数字,默认单位为:度。

  cx和cy为可选参数,用于代表旋转的中心点。如果没有提供cx和cy值,那么旋转的中心点位于当前用户坐标系统的原点。

  在rotate()函数中指定中心点就像在CSS中设置transform: rotate()和transform-origin的简写方式。由于SVG默认的旋转中心点位于当前用户坐标系统的左上角(坐标原点),你创建的旋转效果可能不是你需要的,这时你就需要指定一个新的旋转中心点。如果你知道元素的尺寸和位置,你就可以非常容易的为它指定一个旋转中心点。

  下面的例子在当前用户坐标系统中将一组SVG元素绕(50,50)中心点旋转45度。

  1.     ......
  2.    
复制代码
  在CSS中,你想让一个元素绕它的中心旋转,可以指定旋转中心点为50% 50%,但是在SVG rotate()中不可以这样做。你必须使用绝对坐标系统。

  本文版权属于jQuery之家,转载请注明出处:http://www.htmleaf.com/ziliaoku/ ... g/201506202075.html

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

uniapp がミニ プログラムと H5 の間で迅速な変換を実現する方法 uniapp がミニ プログラムと H5 の間で迅速な変換を実現する方法 Oct 20, 2023 pm 02:12 PM

uniapp がミニ プログラムと H5 の間で迅速な変換を実現するには、具体的なコード例が必要ですが、近年、モバイル インターネットの発展とスマートフォンの普及に伴い、ミニ プログラムと H5 は不可欠なアプリケーション形式となっています。クロスプラットフォーム開発フレームワークとして、uniapp は一連のコードに基づいて小規模プログラムと H5 間の変換を迅速に実現し、開発効率を大幅に向上させます。この記事では、uniapp がミニ プログラムと H5 の間で迅速な変換を実現する方法と、具体的なコード例を紹介します。 1. uniapp uniaの紹介

win101909と21h2ではどちらが優れていますか? win101909と21h2ではどちらが優れていますか? Dec 26, 2023 pm 02:01 PM

Windows 101909 は現在、最も安定しており信頼できるバージョンの 1 つと考えられていますが、残念ながら、このバージョンのサービス サポートは最近終了しました。 21H2 は比較的安定したバージョンであり、実際の状況からすると、どちらも非常に良い選択です。 win101909 と 21h2 のどちらが優れていますか? 回答: 1909 の方が安定しており、21h2 の方が安全です。現在の環境では、1909 は依然として最も安定しており信頼できるバージョンの 1 つであると一般に考えられています。ただし、Win101909 バージョンは、2021 年 5 月 11 日に正式にサービスの提供を停止しました。WindowsServer21h2 は、大多数のユーザーに、より専門的な IT 機能のサポートを提供することに取り組んでいます。 1. 多くのユーザーによる実際のテストの後、

win1121h2 と 22h2 のどちらのバージョンがより安定していますか? win1121h2 と 22h2 のどちらのバージョンがより安定していますか? Jan 04, 2024 am 08:53 AM

win1121h2 と 22h2 の 2 つのバージョンを比較すると、後者の 22h2 の方が安定しており、22h2 の方が機能が多く、前​​の 21h2 と比べて多くの機能が改善されています。 win1121h2 と 22h2 はどちらの方が安定していますか: 回答: 22h2 の方が安定しています win1121h2 と 22h2 を比較すると、22h2 の方が安定しています。 22h2では多くの機能が追加されており、21h2の問題点も22h2では改善されています。 22h2 アップデート機能: スタート メニューのアプリケーション フォルダー。 [スタート] メニューの調整可能な固定領域。タスクバーにドラッグアンドドロップします。フォーカス アシストは通知センターと統合されています。新しい「スポットライト」壁紙機能。新しい

win1123h2 と 22h2 のどちらを選択するのが良いでしょうか? win1123h2 と 22h2 のどちらを選択するのが良いでしょうか? Dec 28, 2023 pm 03:09 PM

Windows 11 システムの 23h2 バージョンと 22h2 バージョンは、それぞれ 2023 年と 2022 年にリリースされる予定です。一般的に、システム アップデートはますます改善されています。編集者も、23h2 バージョンは 22h2 バージョンよりも優れていると考えています。 win1123h2 と 22h2 のどちらが優れていますか? 回答: win1123h2 の方が優れています。報告によると、win1123h2 は 22h2 から次のバージョンへの累積的なバージョン アップデートであり、プラットフォームはすべて同じです。これは、2 つのバージョン間に互換性の問題がないことを意味するため、適時に更新することをお勧めします。 win1123h2 バージョンでは、タスクバー ウィンドウ アプリケーションのマージ禁止モードなど、多くの実用的な機能が提供されます。他にもあります

Win11 23H2アップデートが取得できない問題を解決 Win11 23H2アップデートが取得できない問題を解決 Jan 14, 2024 pm 09:24 PM

最近、誰もが Win11 の 23H2 バージョンにアップデートしたいと考えていますが、少数のユーザーがアップデートのプッシュ メッセージをまだ受け取っていません。バックグラウンドでのアップデートの進行中のプロセスが停止している可能性があり、しばらくすると正常になります。 Win11 アップデートが 23H2 を取得できない場合の対処方法. 方法 1: 辛抱強く待つ. ユーザーがコンピューターのアップデート ステータスを確認し、スタックしていることがわかった場合は、しばらく待つことができ、システムはアップデートを続行します。方法 2: 更新されたキャッシュをクリアします。ユーザーが以前にシステムを更新していて、より詳細なキャッシュをクリアしていない場合は、23h2 の通常の更新に影響します。手動でクリアできます。方法 3: イメージ インストールを使用する Microsoft の公式 Web サイトにアクセスして win1123h2 のイメージ ファイルをダウンロードし、ファイルを更新することをお勧めします。

Win11 22H2 はタスクバーの障害を修正し、タスクバーのドラッグ アンド ドロップ機能を復元します Win11 22H2 はタスクバーの障害を修正し、タスクバーのドラッグ アンド ドロップ機能を復元します Dec 24, 2023 am 11:05 AM

タスクバーは、今回の Win11 システムにおける多くの問題の原因です。そのため、Microsoft は今回、それを最適化して修正しようとしています。以下は、22H2 で修正される詳細な Win11 タスクバーの障害です。タスクバーのドラッグ アンド ドロップ機能は、問題が発生する可能性があります。詳細に戻る 一緒に学びましょう、ぜひ試してみてください。 Win11 タスクバーの障害は 22H2 で修正され、タスクバーのドラッグ アンド ドロップ機能が次の状態に戻る可能性があります: 1. Win11 システムのタスクバーには多くの問題やバグがあり、多くのユーザーの使用に影響を及ぼしますが、幸いなことに、今回 Microsoft は関連するメンテナンスを実行します。新しいシステム向けに最適化および修正し、タスクバーの信頼性を高めます。 2. これまでは、マウスがタスクバー上にあると、ポップアップ ウィンドウが他の場所にランダムに表示されていました。 3. また、マウスがタスクバーの隅にあるアイコン上に留まると、速度が速すぎます。

Win10 20H2 プレビュー版 19042.388 アップデートの詳細説明 Win10 20H2 プレビュー版 19042.388 アップデートの詳細説明 Dec 26, 2023 pm 02:45 PM

少し前に、Microsoft の内部テスターが win10 の 20h2 バージョンをリリースしました。多くの友人は、それが更新された内容を知りません。それは問題ではありません。以下に詳しく説明しますので、見てみましょう。 win1020h2 の更新内容: 1. PowerShell を使用して ServerCore のシステム ロケールを変更できない問題を修正しました。 2. ウィンドウモードでウィンドウのサイズを変更したり、全画面ウィンドウに切り替えたりするときに、家庭教師ゲームアプリケーションで歪みが発生する問題を修正しました。 3. lsass.exe がデバイスの強制再起動に失敗する原因となった問題を修正しました。 4. 6月8日にリリースされたWindows Updateパッチをインストールした後、グラフィックスまたはファイルを印刷できなくなるドキュメントの問題を修正しました。 5

Win101909を20H2にアップデートする方法 Win101909を20H2にアップデートする方法 Jan 05, 2024 pm 09:53 PM

win101909 バージョンの更新が停止されたため、多くのユーザーがシステム バージョンを更新したいと考えていますが、その方法がわかりません。ユーザーはコンピューターの設定を入力するだけで、対応するアップグレードを見つけることができます。 win101909 を 20h21 にアップデートする方法。コンピュータのスタート ボタンをクリックし、[設定] をクリックします。 2. 次に、[更新とセキュリティ] をクリックします。 3. ここで [更新の確認] を見つけます。 4. 対応するバージョンを見つけて、[ダウンロードしてインストール] をクリックし、しばらく待ちます。コンピューター自体を更新する 以上です。

See all articles