山本ワールド
SVGによる線種の設定
概要
線分の書式
strokeで色指定、stroke-widthで線の太さ、 stroke-dasharray で破線の指定、marker-start・marker-endはマーカーのidを指定します。
マーカー
マーカーを指定することにより矢印等を線分に付加することができます。
< marker>により宣言しid名を指定します。このid名を線分のmarker-start・marker-endで指定することによりマーカーを付加することができます。
本例では線分で矢印を作成していますが、任意の図形を指定可能です。
マーカーはviewBoxで示される座標範囲に描画され、実際の大きさはmarker-width・marker-heightの範囲に投影されます。refX・refYで示され位置(viewBoxの座標が基準)が線分の端点となります。orientを指定することにより線分の傾きに合わせてマーカーも回転します。マーカーの図形は水平線を基準に指定します。
ディフォルトでは線分の太さによってマーカーサイズが自動的に拡大されますが、markerUnits属性にuserSpaceOnUseを指定すると拡大されないようになります。
破線
stroke-dasharray(パターン)
"線の長さ 空白の長さの"順番で破線のパターンを指定します。複数回連続して指定可能です。stroke-dasharray="4 4"
stroke-dasharray="24 3 2 3"
stroke-dasharray="24 3 2 3 2 3"
stroke-dashoffset(開始位置)
破線の開始位置を指定できます。以下に8間隔の破線とその破線の開始位置を8ずらした例を図示します。stroke-dasharray="8 8"
stroke-dasharray="8 8" stroke-dashoffset="8"
破線を使用したアニメーション
破線の開始位置又は破線の長さの比率を変えることにより簡単なアニメーションを作成することができます。以下の例は上下別々の円弧についてjavascriptを使用し曲線の長さをgetTotalLength()で取得し0.2秒おきにstroke-dasharrayとstroke-dashoffsetを設定することによりアニメーションを構成しています。
stroke-dasharray="8 8"
8 8
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<svg width="200" height="200" viewBox="0 -100 200 200" xmlns="http://www.w3.org/2000/svg">
<path id="ani_dash1" d="M 0,0 A 100,100 0 0 0 200,0" stroke="black" fill="none"/>
<path id="ani_dash2" d="M 0,0 A 100,100 0 0 1 200,0" stroke="red" fill="none"/>
</svg>
<script type="text/javascript">
var len1=0;//曲線長さ
var ani1_count=0;
function ani1(){
if(ani1_count<len1-10)
ani1_count+=10;
else {
ani1_count=0;
}
var t=ani1_count+" "+(len1-ani1_count);
var svg=document.getElementById("ani_dash1");
svg.setAttribute("stroke-dasharray",t);
svg=document.getElementById("ani_dash2");
svg.setAttribute("stroke-dashoffset",ani1_count);
setTimeout("ani1()",200);
}
window.onload = function(){
// ページ読み込み時に実行したい処理
var obj=document.getElementById("ani_dash1");
len1=Math.floor(obj.getTotalLength());
obj=document.getElementById("ani_dash2");
obj.setAttribute("stroke-dasharray",16+" "+(len1-16));
ani1();
}
</script>
</body>
</html>
フォームより数値を入力して実際に描画してみる
SVGの描画エリアは左上(-100,-100)-右下(100,100)ですので範囲に収まるように指定してください。
初期表示状態と同じ図形を描画するhtmlソース
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<svg width="100" height="100" viewBox="-100 -100 200 200" xmlns="http://www.w3.org/2000/svg">
<marker id="marker1" viewBox="-10 -5 10 10" refX="-10" refY="0" markerWidth="10" markerHeight="10" orient="auto">
<path d="M -10 0 L 0 -5 L 0 5 Z"/>
</marker>
<marker id="marker2" viewBox="0 -5 10 10" refX="10" refY="0" markerWidth="10" markerHeight="10" orient="auto">
<path d="M 0 -5 L 0 5 L 10 0 Z"/>
</marker>
<line id="line1" x1="-50" y1="-50" x2="50" y2="50" stroke="black" marker-start="url(#marker1)" marker-end="url(#marker2)" stroke-width="1" stroke-dasharray="4 4"/>
</svg>
</body>
</html>
標準色名
| 色名 | 色 | RGB | R | G | B | H | S | L | 16 |
|---|---|---|---|---|---|---|---|---|---|
| AliceBlue | #F0F8FF | 240 | 248 | 255 | 208 | 5.9 | 255 | ||
| AntiqueWhite | #FAEBD7 | 250 | 235 | 215 | 34 | 14 | 250 | ||
| Aqua | #00FFFF | 0 | 255 | 255 | 180 | 100 | 255 | ○ | |
| Aquamarine | #7FFFD4 | 127 | 255 | 212 | 160 | 50.2 | 255 | ||
| Azure | #F0FFFF | 240 | 255 | 255 | 180 | 5.9 | 255 | ||
| Beige | #F5F5DC | 245 | 245 | 220 | 60 | 10.2 | 245 | ||
| Bisque | #FFE4C4 | 255 | 228 | 196 | 33 | 23.1 | 255 | ||
| Black | #000000 | 0 | 0 | 0 | 0 | ○ | |||
| BlanchedAlmond | #FFEBCD | 255 | 235 | 205 | 36 | 19.6 | 255 | ||
| Blue | #0000FF | 0 | 0 | 255 | 240 | 100 | 255 | ○ | |
| BlueViolet | #8A2BE2 | 138 | 43 | 226 | 271 | 81 | 226 | ||
| Brown | #A52A2A | 165 | 42 | 42 | 0 | 74.5 | 165 | ||
| BurlyWood | #DEB887 | 222 | 184 | 135 | 34 | 39.2 | 222 | ||
| CadetBlue | #5F9EA0 | 95 | 158 | 160 | 182 | 40.6 | 160 | ||
| Chartreuse | #7FFF00 | 127 | 255 | 0 | 90 | 100 | 255 | ||
| Chocolate | #D2691E | 210 | 105 | 30 | 25 | 85.7 | 210 | ||
| Coral | #FF7F50 | 255 | 127 | 80 | 16 | 68.6 | 255 | ||
| CornflowerBlue | #6495ED | 100 | 149 | 237 | 219 | 57.8 | 237 | ||
| Cornsilk | #FFF8DC | 255 | 248 | 220 | 48 | 13.7 | 255 | ||
| Crimson | #DC143C | 220 | 20 | 60 | 348 | 90.9 | 220 | ||
| Cyan | #00FFFF | 0 | 255 | 255 | 180 | 100 | 255 | ○ | |
| DarkBlue | #00008B | 0 | 0 | 139 | 240 | 100 | 139 | ||
| DarkCyan | #008B8B | 0 | 139 | 139 | 180 | 100 | 139 | ||
| DarkGoldenRod | #B8860B | 184 | 134 | 11 | 43 | 94 | 184 | ||
| DarkGray | #A9A9A9 | 169 | 169 | 169 | 0 | 169 | |||
| DarkGrey | #A9A9A9 | 169 | 169 | 169 | 0 | 169 | |||
| DarkGreen | #006400 | 0 | 100 | 0 | 120 | 100 | 100 | ||
| DarkKhaki | #BDB76B | 189 | 183 | 107 | 56 | 43.4 | 189 | ||
| DarkMagenta | #8B008B | 139 | 0 | 139 | 300 | 100 | 139 | ||
| DarkOliveGreen | #556B2F | 85 | 107 | 47 | 82 | 56.1 | 107 | ||
| Darkorange | #FF8C00 | 255 | 140 | 0 | 33 | 100 | 255 | ||
| DarkOrchid | #9932CC | 153 | 50 | 204 | 280 | 75.5 | 204 | ||
| DarkRed | #8B0000 | 139 | 0 | 0 | 0 | 100 | 139 | ||
| DarkSalmon | #E9967A | 233 | 150 | 122 | 15 | 47.6 | 233 | ||
| DarkSeaGreen | #8FBC8F | 143 | 188 | 143 | 120 | 23.9 | 188 | ||
| DarkSlateBlue | #483D8B | 72 | 61 | 139 | 248 | 56.1 | 139 | ||
| DarkSlateGray | #2F4F4F | 47 | 79 | 79 | 180 | 40.5 | 79 | ||
| DarkSlateGrey | #2F4F4F | 47 | 79 | 79 | 180 | 40.5 | 79 | ||
| DarkTurquoise | #00CED1 | 0 | 206 | 209 | 181 | 100 | 209 | ||
| DarkViolet | #9400D3 | 148 | 0 | 211 | 282 | 100 | 211 | ||
| DeepPink | #FF1493 | 255 | 20 | 147 | 328 | 92.2 | 255 | ||
| DeepSkyBlue | #00BFFF | 0 | 191 | 255 | 195 | 100 | 255 | ||
| DimGray | #696969 | 105 | 105 | 105 | 0 | 105 | |||
| DimGrey | #696969 | 105 | 105 | 105 | 0 | 105 | |||
| DodgerBlue | #1E90FF | 30 | 144 | 255 | 210 | 88.2 | 255 | ||
| FireBrick | #B22222 | 178 | 34 | 34 | 0 | 80.9 | 178 | ||
| FloralWhite | #FFFAF0 | 255 | 250 | 240 | 40 | 5.9 | 255 | ||
| ForestGreen | #228B22 | 34 | 139 | 34 | 120 | 75.5 | 139 | ||
| Fuchsia | #FF00FF | 255 | 0 | 255 | 300 | 100 | 255 | ○ | |
| Gainsboro | #DCDCDC | 220 | 220 | 220 | 0 | 220 | |||
| GhostWhite | #F8F8FF | 248 | 248 | 255 | 240 | 2.7 | 255 | ||
| Gold | #FFD700 | 255 | 215 | 0 | 51 | 100 | 255 | ||
| GoldenRod | #DAA520 | 218 | 165 | 32 | 43 | 85.3 | 218 | ||
| Gray | #808080 | 128 | 128 | 128 | 0 | 128 | ○ | ||
| Grey | #808080 | 128 | 128 | 128 | 0 | 128 | ○ | ||
| Green | #008000 | 0 | 128 | 0 | 120 | 100 | 128 | ○ | |
| GreenYellow | #ADFF2F | 173 | 255 | 47 | 84 | 81.6 | 255 | ||
| HoneyDew | #F0FFF0 | 240 | 255 | 240 | 120 | 5.9 | 255 | ||
| HotPink | #FF69B4 | 255 | 105 | 180 | 330 | 58.8 | 255 | ||
| IndianRed | #CD5C5C | 205 | 92 | 92 | 0 | 55.1 | 205 | ||
| Indigo | #4B0082 | 75 | 0 | 130 | 275 | 100 | 130 | ||
| Ivory | #FFFFF0 | 255 | 255 | 240 | 60 | 5.9 | 255 | ||
| Khaki | #F0E68C | 240 | 230 | 140 | 54 | 41.7 | 240 | ||
| Lavender | #E6E6FA | 230 | 230 | 250 | 240 | 8 | 250 | ||
| LavenderBlush | #FFF0F5 | 255 | 240 | 245 | 340 | 5.9 | 255 | ||
| LawnGreen | #7CFC00 | 124 | 252 | 0 | 90 | 100 | 252 | ||
| LemonChiffon | #FFFACD | 255 | 250 | 205 | 54 | 19.6 | 255 | ||
| LightBlue | #ADD8E6 | 173 | 216 | 230 | 195 | 24.8 | 230 | ||
| LightCoral | #F08080 | 240 | 128 | 128 | 0 | 46.7 | 240 | ||
| LightCyan | #E0FFFF | 224 | 255 | 255 | 180 | 12.2 | 255 | ||
| LightGoldenRodYellow | #FAFAD2 | 250 | 250 | 210 | 60 | 16 | 250 | ||
| LightGray | #D3D3D3 | 211 | 211 | 211 | 0 | 211 | |||
| LightGrey | #D3D3D3 | 211 | 211 | 211 | 0 | 211 | |||
| LightGreen | #90EE90 | 144 | 238 | 144 | 120 | 39.5 | 238 | ||
| LightPink | #FFB6C1 | 255 | 182 | 193 | 351 | 28.6 | 255 | ||
| LightSalmon | #FFA07A | 255 | 160 | 122 | 17 | 52.2 | 255 | ||
| LightSeaGreen | #20B2AA | 32 | 178 | 170 | 177 | 82 | 178 | ||
| LightSkyBlue | #87CEFA | 135 | 206 | 250 | 203 | 46 | 250 | ||
| LightSlateGray | #778899 | 119 | 136 | 153 | 210 | 22.2 | 153 | ||
| LightSlateGrey | #778899 | 119 | 136 | 153 | 210 | 22.2 | 153 | ||
| LightSteelBlue | #B0C4DE | 176 | 196 | 222 | 214 | 20.7 | 222 | ||
| LightYellow | #FFFFE0 | 255 | 255 | 224 | 60 | 12.2 | 255 | ||
| Lime | #00FF00 | 0 | 255 | 0 | 120 | 100 | 255 | ○ | |
| LimeGreen | #32CD32 | 50 | 205 | 50 | 120 | 75.6 | 205 | ||
| Linen | #FAF0E6 | 250 | 240 | 230 | 30 | 8 | 250 | ||
| Magenta | #FF00FF | 255 | 0 | 255 | 300 | 100 | 255 | ○ | |
| Maroon | #800000 | 128 | 0 | 0 | 0 | 100 | 128 | ○ | |
| MediumAquaMarine | #66CDAA | 102 | 205 | 170 | 160 | 50.2 | 205 | ||
| MediumBlue | #0000CD | 0 | 0 | 205 | 240 | 100 | 205 | ||
| MediumOrchid | #BA55D3 | 186 | 85 | 211 | 288 | 59.7 | 211 | ||
| MediumPurple | #9370D8 | 147 | 112 | 216 | 260 | 48.1 | 216 | ||
| MediumSeaGreen | #3CB371 | 60 | 179 | 113 | 147 | 66.5 | 179 | ||
| MediumSlateBlue | #7B68EE | 123 | 104 | 238 | 249 | 56.3 | 238 | ||
| MediumSpringGreen | #00FA9A | 0 | 250 | 154 | 157 | 100 | 250 | ||
| MediumTurquoise | #48D1CC | 72 | 209 | 204 | 178 | 65.6 | 209 | ||
| MediumVioletRed | #C71585 | 199 | 21 | 133 | 322 | 89.4 | 199 | ||
| MidnightBlue | #191970 | 25 | 25 | 112 | 240 | 77.7 | 112 | ||
| MintCream | #F5FFFA | 245 | 255 | 250 | 150 | 3.9 | 255 | ||
| MistyRose | #FFE4E1 | 255 | 228 | 225 | 6 | 11.8 | 255 | ||
| Moccasin | #FFE4B5 | 255 | 228 | 181 | 38 | 29 | 255 | ||
| NavajoWhite | #FFDEAD | 255 | 222 | 173 | 36 | 32.2 | 255 | ||
| Navy | #000080 | 0 | 0 | 128 | 240 | 100 | 128 | ○ | |
| OldLace | #FDF5E6 | 253 | 245 | 230 | 39 | 9.1 | 253 | ||
| Olive | #808000 | 128 | 128 | 0 | 60 | 100 | 128 | ○ | |
| OliveDrab | #6B8E23 | 107 | 142 | 35 | 80 | 75.4 | 142 | ||
| Orange | #FFA500 | 255 | 165 | 0 | 39 | 100 | 255 | ||
| OrangeRed | #FF4500 | 255 | 69 | 0 | 16 | 100 | 255 | ||
| Orchid | #DA70D6 | 218 | 112 | 214 | 302 | 48.6 | 218 | ||
| PaleGoldenRod | #EEE8AA | 238 | 232 | 170 | 55 | 28.6 | 238 | ||
| PaleGreen | #98FB98 | 152 | 251 | 152 | 120 | 39.4 | 251 | ||
| PaleTurquoise | #AFEEEE | 175 | 238 | 238 | 180 | 26.5 | 238 | ||
| PaleVioletRed | #D87093 | 216 | 112 | 147 | 340 | 48.1 | 216 | ||
| PapayaWhip | #FFEFD5 | 255 | 239 | 213 | 37 | 16.5 | 255 | ||
| PeachPuff | #FFDAB9 | 255 | 218 | 185 | 28 | 27.5 | 255 | ||
| Peru | #CD853F | 205 | 133 | 63 | 30 | 69.3 | 205 | ||
| Pink | #FFC0CB | 255 | 192 | 203 | 350 | 24.7 | 255 | ||
| Plum | #DDA0DD | 221 | 160 | 221 | 300 | 27.6 | 221 | ||
| PowderBlue | #B0E0E6 | 176 | 224 | 230 | 187 | 23.5 | 230 | ||
| Purple | #800080 | 128 | 0 | 128 | 300 | 100 | 128 | ○ | |
| Red | #FF0000 | 255 | 0 | 0 | 0 | 100 | 255 | ○ | |
| RosyBrown | #BC8F8F | 188 | 143 | 143 | 0 | 23.9 | 188 | ||
| RoyalBlue | #4169E1 | 65 | 105 | 225 | 225 | 71.1 | 225 | ||
| SaddleBrown | #8B4513 | 139 | 69 | 19 | 25 | 86.3 | 139 | ||
| Salmon | #FA8072 | 250 | 128 | 114 | 6 | 54.4 | 250 | ||
| SandyBrown | #F4A460 | 244 | 164 | 96 | 28 | 60.7 | 244 | ||
| SeaGreen | #2E8B57 | 46 | 139 | 87 | 146 | 66.9 | 139 | ||
| SeaShell | #FFF5EE | 255 | 245 | 238 | 25 | 6.7 | 255 | ||
| Sienna | #A0522D | 160 | 82 | 45 | 19 | 71.9 | 160 | ||
| Silver | #C0C0C0 | 192 | 192 | 192 | 0 | 192 | ○ | ||
| SkyBlue | #87CEEB | 135 | 206 | 235 | 197 | 42.6 | 235 | ||
| SlateBlue | #6A5ACD | 106 | 90 | 205 | 248 | 56.1 | 205 | ||
| SlateGray | #708090 | 112 | 128 | 144 | 210 | 22.2 | 144 | ||
| SlateGrey | #708090 | 112 | 128 | 144 | 210 | 22.2 | 144 | ||
| Snow | #FFFAFA | 255 | 250 | 250 | 0 | 2 | 255 | ||
| SpringGreen | #00FF7F | 0 | 255 | 127 | 150 | 100 | 255 | ||
| SteelBlue | #4682B4 | 70 | 130 | 180 | 207 | 61.1 | 180 | ||
| Tan | #D2B48C | 210 | 180 | 140 | 34 | 33.3 | 210 | ||
| Teal | #008080 | 0 | 128 | 128 | 180 | 100 | 128 | ○ | |
| Thistle | #D8BFD8 | 216 | 191 | 216 | 300 | 11.6 | 216 | ||
| Tomato | #FF6347 | 255 | 99 | 71 | 9 | 72.2 | 255 | ||
| Turquoise | #40E0D0 | 64 | 224 | 208 | 174 | 71.4 | 224 | ||
| Violet | #EE82EE | 238 | 130 | 238 | 300 | 45.4 | 238 | ||
| Wheat | #F5DEB3 | 245 | 222 | 179 | 39 | 26.9 | 245 | ||
| White | #FFFFFF | 255 | 255 | 255 | 0 | 255 | ○ | ||
| WhiteSmoke | #F5F5F5 | 245 | 245 | 245 | 0 | 245 | |||
| Yellow | #FFFF00 | 255 | 255 | 0 | 60 | 100 | 255 | ○ | |
| YellowGreen | #9ACD32 | 154 | 205 | 50 | 80 | 75.6 | 205 |
Copyright (C) 2012 山本ワールド All Rights Reserved.