Zodiac 0.1

星座のプログラムを作ってみました。今回は5月の星座ということで、おうし座です。

実行結果

生成されたコード


ソース


zodiac01.html

SVG.js ライブラリと JavaScript のソースファイルを指定します。
<script type="text/javascript" src="js/svg.min.js"></script>
<script type="text/javascript" src="js/zodiac01.js"></script>
実行結果のところには "svg" という id の div 要素と "code" という id の pre 要素を用意しました。中身は zodiac01.js の中で作って入れます。
<h2>実行結果</h2>
<div id="svg">
</div>
<h3>生成されたコード</h3>
<pre id="code" class="brush: xml; class-name: 'code'">
</pre>

zodiac01.js

おうし座の星座を表示するプログラムです。座標、星座、おうしの絵を重ねています。

var width = 640;
var height = 400;
var draw;

/* Initialize stars in Taurus
 * return star[] - array of stars
 * index: Flamsteed designation
 * RA (Right ascension), Dec (Declination), Mag (Apparent magnitude)
 */
var star = {};
star[87] = {name: 'Aldebaran', ra: '04 35 55.20', dec: '+16 30 35.1', mag: 0.87};
star[112] = {name: 'β Tau', ra: '05 26 17.50', dec: '+28 36 28.3', mag: 1.65};
star[25] = {name: 'Alcyone A', ra: '03 47 29.06', dec: '+24 06 18.9', mag: 2.85};
star[123] = {name: 'ζ Tau', ra: '05 37 38.68', dec: '+21 08 33.3', mag: 2.97};
star[78] = {name: 'θ2 Tau', ra: '04 28 39.67', dec: '+15 52 15.4', mag: 3.40};
star[35] = {name: 'λ Tau', ra: '04 00 40.82', dec: '+12 29 25.4', mag: 3.41};
star[74] = {name: 'ε Tau', ra: '04 28 36.93', dec: '+19 10 49.9', mag: 3.53};
star[1] = {name: 'ο Tau', ra: '03 24 48.84', dec: '+09 01 44.6', mag: 3.61};
star[27] = {name: 'Atlas A', ra: '03 49 09.73', dec: '+24 03 12.7', mag: 3.62};
star[54] = {name: 'γ Tau', ra: '04 19 47.53', dec: '+15 37 39.7', mag: 3.65};
star[17] = {name: 'Electra', ra: '03 44 52.52', dec: '+24 06 48.4', mag: 3.72};
star[2] = {name: 'ξ Tau', ra: '03 27 10.12', dec: '+09 43 58.0', mag: 3.73};
star[61] = {name: 'δ1 Tau', ra: '04 22 56.03', dec: '+17 32 33.3', mag: 3.77};
star[77] = {name: 'θ1 Tau', ra: '04 28 34.43', dec: '+15 57 44.0', mag: 3.84};
star[20] = {name: 'Maia', ra: '03 45 49.59', dec: '+24 22 04.3', mag: 3.87};
star[38] = {name: 'ν Tau', ra: '04 03 09.38', dec: '+05 59 21.5', mag: 3.91};
star[5] = {name: '5 Tau', ra: '03 30 52.37', dec: '+12 56 12.1', mag: 4.14};
star[23] = {name: 'Merope', ra: '03 46 19.56', dec: '+23 56 54.5', mag: 4.14};
star[65] = {name: 'κ1 Tau', ra: '04 25 22.10', dec: '+22 17 38.3', mag: 4.21};
star[88] = {name: '88 Tau', ra: '04 35 39.23', dec: '+10 09 39.3', mag: 4.25};
star[49] = {name: 'μ Tau', ra: '04 15 32.05', dec: '+08 53 32.7', mag: 4.27};
star[90] = {name: '90 Tau', ra: '04 38 09.40', dec: '+12 30 39.1', mag: 4.27};
star[94] = {name: 'τ Tau', ra: '04 42 14.70', dec: '+22 57 25.1', mag: 4.27};
star[69] = {name: 'υ Tau', ra: '04 26 18.39', dec: '+22 48 49.3', mag: 4.28};
star[10] = {name: '10 Tau', ra: '03 36 52.52', dec: '+00 24 10.2', mag: 4.29};
star[19] = {name: 'Taygeta', ra: '03 45 12.48', dec: '+24 28 02.6', mag: 4.30};
star[68] = {name: '68 Tau', ra: '04 25 29.32', dec: '+17 55 40.8', mag: 4.30};
star[119] = {name: '119 Tau', ra: '05 32 12.75', dec: '+18 35 39.3', mag: 4.32};
star[37] = {name: '37 Tau', ra: '04 04 41.66', dec: '+22 04 55.4', mag: 4.36};
star[71] = {name: '71 Tau', ra: '04 26 20.67', dec: '+15 37 06.0', mag: 4.48};
star[136] = {name: '136 Tau', ra: '05 53 19.64', dec: '+27 36 44.2', mag: 4.56};
star[102] = {name: 'ι Tau', ra: '05 03 05.70', dec: '+21 35 24.2', mag: 4.62};
star[86] = {name: 'ρ Tau', ra: '04 33 50.86', dec: '+14 50 40.2', mag: 4.65};
star[92] = {name: 'σ2 Tau', ra: '04 39 16.45', dec: '+15 55 04.9', mag: 4.67};
star[73] = {name: 'π Tau', ra: '04 26 36.38', dec: '+14 42 49.9', mag: 4.69};
star[64] = {name: '64 Tau', ra: '04 24 05.69', dec: '+17 26 39.2', mag: 4.80};
star[139] = {name: '139 Tau', ra: '05 57 59.66', dec: '+25 57 14.1', mag: 4.81};
star[47] = {name: '47 Tau', ra: '04 13 56.39', dec: '+09 15 50.0', mag: 4.84};
star[126] = {name: '126 Tau', ra: '05 41 17.72', dec: '+16 32 03.1', mag: 4.84};
star[114] = {name: '114 Tau', ra: '05 27 38.08', dec: '+21 56 13.1', mag: 4.88};
star[132] = {name: '132 Tau', ra: '05 49 00.96', dec: '+24 34 03.2', mag: 4.88};
star[134] = {name: '134 Tau', ra: '05 49 32.94', dec: '+12 39 04.9', mag: 4.89};
star[104] = {name: '104 Tau', ra: '05 07 26.68', dec: '+18 38 42.0', mag: 4.91};
star[50] = {name: 'ω2 Tau', ra: '04 17 15.69', dec: '+20 34 43.5', mag: 4.93};
star[75] = {name: '75 Tau', ra: '04 28 26.37', dec: '+16 21 34.7', mag: 4.96};
star[109] = {name: '109 Tau', ra: '05 19 16.59', dec: '+22 05 48.1', mag: 4.96};
star[52] = {name: 'φ Tau', ra: '04 20 21.23', dec: '+27 21 03.4', mag: 4.97};
star[111] = {name: '111 Tau', ra: '05 24 25.31', dec: '+17 23 00.8', mag: 5.00};
star[79] = {name: '79 Tau', ra: '04 28 50.10', dec: '+13 02 51.5', mag: 5.02};
star[28] = {name: 'Pleione', ra: '03 49 11.20', dec: '+24 08 12.6', mag: 5.05};
star[30] = {name: '30 Tau', ra: '03 48 16.25', dec: '+11 08 36.1', mag: 5.08};
star[91] = {name: 'σ1 Tau', ra: '04 39 09.20', dec: '+15 48 00.1', mag: 5.08};
star[97] = {name: '97 Tau', ra: '04 51 22.41', dec: '+18 50 23.8', mag: 5.08};
star[66] = {name: '66 Tau', ra: '04 23 51.84', dec: '+09 27 39.5', mag: 5.10};
star[4] = {name: '4 Tau', ra: '03 30 24.48', dec: '+11 20 11.3', mag: 5.14};
star[41] = {name: '41 Tau', ra: '04 06 36.40', dec: '+27 36 00.1', mag: 5.18};
star[125] = {name: '125 Tau', ra: '05 39 44.19', dec: '+25 53 49.7', mag: 5.18};
star[42] = {name: 'ψ Tau', ra: '04 07 00.52', dec: '+29 00 04.6', mag: 5.21};
star[58] = {name: '58 Tau', ra: '04 20 36.24', dec: '+15 05 43.8', mag: 5.26};
star[67] = {name: 'κ2 Tau', ra: '04 25 24.94', dec: '+22 12 00.4', mag: 5.27};
star[106] = {name: 'l Tau', ra: '05 07 48.43', dec: '+20 25 06.4', mag: 5.28};
star[133] = {name: '133 Tau', ra: '05 47 42.90', dec: '+13 53 58.7', mag: 5.28};
star[46] = {name: '46 Tau', ra: '04 13 33.11', dec: '+07 42 57.7', mag: 5.29};
star[40] = {name: '40 Tau', ra: '04 03 44.60', dec: '+05 26 08.3', mag: 5.32};
star[29] = {name: '29 Tau', ra: '03 45 40.43', dec: '+06 03 00.1', mag: 5.34};
star[56] = {name: '56 Tau', ra: '04 19 36.69', dec: '+21 46 24.9', mag: 5.34};
star[121] = {name: '121 Tau', ra: '05 35 27.12', dec: '+24 02 22.7', mag: 5.37};
star[59] = {name: 'χ Tau', ra: '04 22 34.93', dec: '+25 37 45.7', mag: 5.38};
star[44] = {name: '44 Tau', ra: '04 10 49.88', dec: '+26 28 51.7', mag: 5.39};
star[83] = {name: '83 Tau', ra: '04 30 37.30', dec: '+13 43 28.0', mag: 5.40};
star[115] = {name: '115 Tau', ra: '05 27 10.09', dec: '+17 57 44.2', mag: 5.40};
star[16] = {name: 'Celaeno', ra: '03 44 48.20', dec: '+24 17 22.5', mag: 5.45};
star[93] = {name: '93 Tau', ra: '04 40 03.42', dec: '+12 11 51.5', mag: 5.45};
star[36] = {name: '36 Tau', ra: '04 04 21.67', dec: '+24 06 21.7', mag: 5.46};
star[81] = {name: '81 Tau', ra: '04 30 38.83', dec: '+15 41 31.0', mag: 5.47};
star[118] = {name: '118 Tau', ra: '05 29 16.49', dec: '+25 09 01.1', mag: 5.47};
star[130] = {name: '130 Tau', ra: '05 47 26.20', dec: '+17 43 44.9', mag: 5.47};
star[53] = {name: '53 Tau', ra: '04 19 26.08', dec: '+21 08 32.7', mag: 5.50};
star[103] = {name: '103 Tau', ra: '05 08 06.62', dec: '+24 15 54.7', mag: 5.50};
star[43] = {name: 'ω1 Tau', ra: '04 09 09.90', dec: '+19 36 33.5', mag: 5.51};
star[116] = {name: '116 Tau', ra: '05 27 45.61', dec: '+15 52 26.8', mag: 5.52};
star[72] = {name: '72 Tau', ra: '04 27 17.45', dec: '+22 59 46.9', mag: 5.53};
star['(44)'] = {name: '44 Eri', ra: '04 28 32.11', dec: '+01 22 51.1', mag: 5.53};
star[122] = {name: '122 Tau', ra: '05 37 03.71', dec: '+17 02 25.5', mag: 5.53};
star[135] = {name: '135 Tau', ra: '05 50 28.90', dec: '+14 18 20.5', mag: 5.54};
star[12] = {name: '12 Tau', ra: '03 39 51.14', dec: '+03 03 24.6', mag: 5.55};
star[57] = {name: '57 Tau', ra: '04 19 57.63', dec: '+14 02 06.9', mag: 5.58};
star[80] = {name: '80 Tau', ra: '04 30 08.53', dec: '+15 38 16.4', mag: 5.58};
star[137] = {name: '137 Tau', ra: '05 52 22.30', dec: '+14 10 18.5', mag: 5.60};
star[32] = {name: '32 Tau', ra: '03 56 52.03', dec: '+22 28 41.7', mag: 5.62};
star[51] = {name: '51 Tau', ra: '04 18 23.14', dec: '+21 34 45.8', mag: 5.64};
star[63] = {name: '63 Tau', ra: '04 23 25.00', dec: '+16 46 38.4', mag: 5.64};
star[18] = {name: '18 Tau', ra: '03 45 09.73', dec: '+24 50 21.7', mag: 5.66};
star[31] = {name: '31 Tau', ra: '03 52 00.22', dec: '+06 32 05.7', mag: 5.66};
star[120] = {name: '120 Tau', ra: '05 33 31.63', dec: '+18 32 24.8', mag: 5.67};
star[13] = {name: '13 Tau', ra: '03 42 18.94', dec: '+19 42 01.0', mag: 5.68};
star[45] = {name: '45 Tau', ra: '04 11 20.20', dec: '+05 31 22.9', mag: 5.71};
star[60] = {name: '60 Tau', ra: '04 22 03.45', dec: '+14 04 38.1', mag: 5.72};
star[131] = {name: '131 Tau', ra: '05 47 13.15', dec: '+14 29 18.3', mag: 5.72};
star[6] = {name: '6 Tau', ra: '03 32 35.93', dec: '+09 22 24.8', mag: 5.76};
star[21] = {name: 'Sterope I', ra: '03 45 54.46', dec: '+24 33 16.6', mag: 5.76};
star[117] = {name: '117 Tau', ra: '05 28 01.60', dec: '+17 14 21.3', mag: 5.77};
star[89] = {name: '89 Tau', ra: '04 38 09.38', dec: '+16 02 00.2', mag: 5.78};
star[99] = {name: '99 Tau', ra: '04 57 48.65', dec: '+23 56 54.9', mag: 5.79};
star[98] = {name: '98 Tau', ra: '04 58 09.38', dec: '+25 03 01.9', mag: 5.79};
star[105] = {name: '105 Tau', ra: '05 07 55.43', dec: '+21 42 17.4', mag: 5.84};
star[39] = {name: '39 Tau', ra: '04 05 20.15', dec: '+22 00 33.2', mag: 5.90};
star[76] = {name: '76 Tau', ra: '04 28 23.34', dec: '+14 44 27.7', mag: 5.90};
star[7] = {name: '7 Tau', ra: '03 34 26.62', dec: '+24 27 52.1', mag: 5.95};
star[129] = {name: '129 Tau', ra: '05 46 45.49', dec: '+15 49 21.0', mag: 6.00};
star[85] = {name: '85 Tau', ra: '04 31 51.69', dec: '+15 51 05.9', mag: 6.01};
star[33] = {name: '33 Tau', ra: '03 57 03.80', dec: '+23 10 32.1', mag: 6.05};
star[96] = {name: '96 Tau', ra: '04 49 44.08', dec: '+15 54 15.3', mag: 6.09};
star[110] = {name: '110 Tau', ra: '05 23 37.72', dec: '+16 41 57.7', mag: 6.09};
star[11] = {name: '11 Tau', ra: '03 40 46.30', dec: '+25 19 46.3', mag: 6.11};
star[14] = {name: '14 Tau', ra: '03 43 47.14', dec: '+19 39 54.6', mag: 6.13};
star[95] = {name: '95 Tau', ra: '04 43 13.75', dec: '+24 05 20.3', mag: 6.18};
star[113] = {name: '113 Tau', ra: '05 26 05.72', dec: '+16 42 00.6', mag: 6.23};
star[108] = {name: '108 Tau', ra: '05 15 27.66', dec: '+22 17 05.5', mag: 6.26};
star[24] = {name: '24 Tau', ra: '03 47 20.90', dec: '+24 06 58.0', mag: 6.28};
star[84] = {name: '84 Tau', ra: '04 31 07.16', dec: '+15 06 18.6', mag: 6.28};
star[48] = {name: '48 Tau', ra: '04 15 46.21', dec: '+15 24 02.7', mag: 6.31};
star[62] = {name: '62 Tau', ra: '04 23 59.76', dec: '+24 18 03.7', mag: 6.34};
star[22] = {name: 'Sterope II', ra: '03 46 02.89', dec: '+24 31 40.8', mag: 6.43};
star[70] = {name: '70 Tau', ra: '04 25 37.25', dec: '+15 56 27.9', mag: 6.44};
star[26] = {name: '26 Tau', ra: '03 48 56.91', dec: '+23 51 26.2', mag: 6.47};
star[9] = {name: '9 Tau', ra: '03 36 58.03', dec: '+23 12 40.0', mag: 6.72};
star[101] = {name: '101 Tau', ra: '04 59 44.27', dec: '+15 55 00.5', mag: 6.75};
star[55] = {name: '55 Tau', ra: '04 19 54.78', dec: '+16 31 21.6', mag: 6.85};
var edge = [[112, 74], [74, 68], [68, 54], [123, 87], [87, 78], [78, 54], [54, 49],
  [54, 35], [25, 35], [35, 2]];
var offsetX;
var offsetY;
var wrap = true;
var decMin;
var decMax;
var raMin = 0;
var raMax;
var xMin;
var xMax;
var yMin;
var yMax;

/**
 * drawGrids function
 * @since 0.1
 */
const drawGrids = function() {
    dec = 0;
    y1 = 0;
    y2 = height;
    for (ra = raMin; ra <= raMax; ra++) {
        xy = raDec2xy(String(ra), String(dec));
        draw.line(xy[0], y1, xy[0], y2).attr({stroke: 'dimgray', width: 1});
        raTxt = ra;
        if (wrap & (raTxt < 0)) {
            raTxt += 24;
        }
        draw.text(raTxt + 'h').attr({fill: 'dimgray', size: 12}).move(xy[0], 5);
    }
    x1 = 0;
    x2 = width;
    for (dec = decMin; dec <= decMax + 10; dec += 10) {
        if (dec > 0) {
            strDec = '+' + dec;
        } else {
            strDec = String(dec);
        }
        xy = raDec2xy(String(ra), strDec);
        draw.line(x1, xy[1], x2, xy[1]).attr({stroke: 'dimgray', width: 1});
        draw.text(strDec).attr({fill: 'dimgray', size: 12}).move(x1, xy[1]);
    }
}

/**
 * getMinMax function - Get minimum and maximum coordinates
 * @since 0.1
 * return decMin - minimum declination
 * return decMax - maximum declination
 * return raMin - minimum right ascension
 * return raMax - maximum right ascension
 * return xMin - minimum x coordinate
 * return xMax - maximum x coordinate
 * return yMin - minimum y coordinate
 * return yMax - maximum y coordinate
 */
const getMinMax = function() {
    first = true;
    Object.keys(star).forEach(function(key) {
        ra = star[key].ra;
        dec = star[key].dec;
        xy = raDec2xy(ra, dec);
        ra1 = Number(ra.substring(0, 2));
        if (wrap & (12 < ra1)) {
            ra1 -= 24;
        }
        if (first) {
            raMin = ra1;
            decMin = Number(dec.substring(0, 3));
            raMax = ra1;
            decMax = Number(dec.substring(0, 3));
            xMin = xy[0];
            yMin = xy[1];
            xMax = xy[0];
            yMax = xy[1];
            first = false;
        } else {
            raMin = Math.min(ra1, raMin);
            decMin = Math.min(dec.substring(0, 3), decMin);
            raMax = Math.max(ra1, raMax);
            decMax = Math.max(dec.substring(0, 3), decMax);
            xMin = Math.min(xy[0], xMin);
            yMin = Math.min(xy[1], yMin);
            xMax = Math.max(xy[0], xMax);
            yMax = Math.max(xy[1], yMax);
        }
    });
    decMin = Math.floor(decMin / 10) * 10;
    raMax = raMax + 1;
    decMax = decMax + 1;
}

/**
 * raDec2xy function - Convert ra, dec to x, y
 * @since 0.1
 * @param ra - right ascension
 * @param dec - declination
 * @return [x, y] - coordinates in graphics window
 */
const raDec2xy = function(ra, dec) {
    var x = Number(ra.substring(0, 2));
    if (wrap & (12 < x)) {
      x -= 24;
    }
    x = x + ra.substring(3, 5) / 60.;
    x = x + ra.substring(6, 11) / 3600.;
    x = offsetX - (x - raMin) * 3600. / 24.;
    var y = Number(dec.substring(1, 3));
    y = y + dec.substring(4, 6) / 60.;
    y = y + dec.substring(7, 12) / 3600.;
    y = y * (dec.substring(0, 1) + '1');
    y = offsetY - y * 3600. / 360.;
    return [x, y];
}

/**
 * onload function
 * @since 0.1
 */
window.onload = function() {
    // Generate svg element
    //<svg width="640" height="400" style="background-color: #333; border: solid 1px lightgray">
    draw = SVG().addTo('#svg').size(width, height).css('border', 'solid 1px lightgray');
    //<defs>
    //<g id="taurus">
    taurus = draw.defs().group({id: 'taurus'});
    //  <path class="st5" d="M110,115.1c0.9,2.9,1.9,6.6,0.3,10.1c-1.5,3.1-4.6,5.2-7.9,7.4c-4.1,2.7-5.6,2.7-6.8,4.7
    //    c-1.1,1.9-1.2,4.2-0.1,8.6c2.8,10.9,7.6,11.5,10.7,21.8c1,3.2,1.4,6.2,4,9.8c2.3,3.3,4.6,4.7,5.9,5.4c3.2,1.6,7.1,2.1,7.7,1
    //    c0.4-0.9-2.2-1.8-2.8-4.6c-0.5-2.2,0.4-4.4,2.2-8.8c0.8-1.9,0.9-1.9,0.9-2.4c-0.1-3.2-4.9-4.9-8.2-9.2c-2.4-3.1-4.4-7.1-2-10.9
    //    c2.1-3.5,6.7-4.6,9.6-4.6c2.4,0,2.5,0.9,5,0.9c4.2,0,5.6-2.3,8.9-2.6c3.7-0.2,6.3,2.3,7.9,3.4c7.1,4.9,22.7,1.2,30.9-5.2
    //    c17.8-13.8,6.1-43.9,23.6-56c1.4-0.9,9.3-6.2,8.3-8.9c-0.5-1.4-2.9-1-4.2-3.1c-1.7-2.8,0.8-6.3-0.5-7.3c-1.2-0.9-3.5,2-5.7,1.3
    //    c-2.5-0.8-4-5.4-3.2-9.2c1.1-5.4,6.8-8.3,6.3-9.1c-0.4-0.6-3.6,2.2-6.9,1.3c-2.7-0.8-4.8-3.8-5.4-6.6c-0.7-3.9,1.9-5.6,0.6-9.8
    //    c-0.1-0.5-0.2-0.4-1.1-3.3c-1-2.8-1.4-4.2-1.4-4.6c0.2-3.4,5-5.4,4.6-6.1c-0.3-0.6-3.6,1.5-5.6,0.1c-1.5-1-2.1-3.7-1.1-5.5
    //    c1.2-2.3,4.4-1.5,5.4-3.6c0.8-1.7-0.2-4.4-1.7-5.6c-2.8-2.3-8.8,0.1-37.3,16.7c-9.1,5.3-12.8,5.6-20.3,8.5
    //    c-8.3,3.2-11.6,5.5-17.1,7.5c-2.8,1-24.9,9.3-27.8,23C82.1,75.1,103.7,96,110,115.1L110,115.1z"/>
    taurus.path('M110,115.1c0.9,2.9,1.9,6.6,0.3,10.1c-1.5,3.1-4.6,5.2-7.9,7.4c-4.1,2.7-5.6,2.7-6.8,4.7 c-1.1,1.9-1.2,4.2-0.1,8.6c2.8,10.9,7.6,11.5,10.7,21.8c1,3.2,1.4,6.2,4,9.8c2.3,3.3,4.6,4.7,5.9,5.4c3.2,1.6,7.1,2.1,7.7,1 c0.4-0.9-2.2-1.8-2.8-4.6c-0.5-2.2,0.4-4.4,2.2-8.8c0.8-1.9,0.9-1.9,0.9-2.4c-0.1-3.2-4.9-4.9-8.2-9.2c-2.4-3.1-4.4-7.1-2-10.9 c2.1-3.5,6.7-4.6,9.6-4.6c2.4,0,2.5,0.9,5,0.9c4.2,0,5.6-2.3,8.9-2.6c3.7-0.2,6.3,2.3,7.9,3.4c7.1,4.9,22.7,1.2,30.9-5.2 c17.8-13.8,6.1-43.9,23.6-56c1.4-0.9,9.3-6.2,8.3-8.9c-0.5-1.4-2.9-1-4.2-3.1c-1.7-2.8,0.8-6.3-0.5-7.3c-1.2-0.9-3.5,2-5.7,1.3 c-2.5-0.8-4-5.4-3.2-9.2c1.1-5.4,6.8-8.3,6.3-9.1c-0.4-0.6-3.6,2.2-6.9,1.3c-2.7-0.8-4.8-3.8-5.4-6.6c-0.7-3.9,1.9-5.6,0.6-9.8 c-0.1-0.5-0.2-0.4-1.1-3.3c-1-2.8-1.4-4.2-1.4-4.6c0.2-3.4,5-5.4,4.6-6.1c-0.3-0.6-3.6,1.5-5.6,0.1c-1.5-1-2.1-3.7-1.1-5.5 c1.2-2.3,4.4-1.5,5.4-3.6c0.8-1.7-0.2-4.4-1.7-5.6c-2.8-2.3-8.8,0.1-37.3,16.7c-9.1,5.3-12.8,5.6-20.3,8.5 c-8.3,3.2-11.6,5.5-17.1,7.5c-2.8,1-24.9,9.3-27.8,23C82.1,75.1,103.7,96,110,115.1L110,115.1z').attr({fill:'#704620', stroke: '#40220F', width: 2});
    //  <path class="st6" d="M201.1,139.4c-1.5,2.1-3.5,1.8-11.1,3.4c-7.1,1.6-11.4,3.3-14.9,5.1c-6.4,3.4-6.9,5.6-7,6.4
    //    c-0.3,2.1,1,4.5,2.8,5.7c3.1,2.1,6-0.4,8.7,1.8c1.9,1.5,1.1,3.2,3.2,4.6c1.9,1.2,2.9,0.2,5,1.4c1.8,1,1.5,2,3.7,4.3
    //    c2.9,3,5,2.9,5.1,4.5c0.1,1-0.7,1.4-3.8,4.5c-4.4,4.3-4.8,5.4-5,5.9c-0.8,2.5,0.1,4.6-0.8,5c-0.9,0.4-2-1.6-3.7-1.3
    //    c-0.9,0.2-1.2,0.8-1.7,0.6c-0.9-0.3-0.2-2.5-1.3-4.2c-1.3-2-3.6-0.9-5.9-2.9c-2.2-1.9-1-3.8-3.1-5.6c-2.2-2-4.2-0.4-7.5-2.2
    //    c-3-1.7-2.3-3.5-5.1-5.2c-3.7-2.3-6,0.3-10.3-1.4c-4.9-1.9-7-7.2-7.5-8.7c-0.3-0.8-2.2-6.5,0.6-11.9c1.9-3.6,4.3-3.7,12.9-9.6
    //    c5.9-4,8.8-6,10.7-8.7c0.5-0.7,5.3-7.8,4-16.5c-1.2-7.6-5.8-8.7-5.5-15.1c0.2-5.2,3.5-8.9,5.1-10.7c3.9-4.5,8.6-5.8,17.1-8.2
    //    c5.7-1.6,16.5-4.1,18.3-1.3c1.1,1.7-4.1,3.5-4.2,8.3c-0.1,3.9,1.4,8.8,5,11.5c2.8,2.2,5.6,1.9,5.7,3.2c0.2,1.7-4.5,2-6.9,5.7
    //    c-2.2,3.6-1.7,9.2,0.9,12.6c2.3,3,5.3,3.2,5.2,4.9c-0.1,1.9-4,1.7-6.4,5.1C201.1,134,203.2,136.6,201.1,139.4L201.1,139.4z"/>
    taurus.path('M201.1,139.4c-1.5,2.1-3.5,1.8-11.1,3.4c-7.1,1.6-11.4,3.3-14.9,5.1c-6.4,3.4-6.9,5.6-7,6.4 c-0.3,2.1,1,4.5,2.8,5.7c3.1,2.1,6-0.4,8.7,1.8c1.9,1.5,1.1,3.2,3.2,4.6c1.9,1.2,2.9,0.2,5,1.4c1.8,1,1.5,2,3.7,4.3 c2.9,3,5,2.9,5.1,4.5c0.1,1-0.7,1.4-3.8,4.5c-4.4,4.3-4.8,5.4-5,5.9c-0.8,2.5,0.1,4.6-0.8,5c-0.9,0.4-2-1.6-3.7-1.3 c-0.9,0.2-1.2,0.8-1.7,0.6c-0.9-0.3-0.2-2.5-1.3-4.2c-1.3-2-3.6-0.9-5.9-2.9c-2.2-1.9-1-3.8-3.1-5.6c-2.2-2-4.2-0.4-7.5-2.2 c-3-1.7-2.3-3.5-5.1-5.2c-3.7-2.3-6,0.3-10.3-1.4c-4.9-1.9-7-7.2-7.5-8.7c-0.3-0.8-2.2-6.5,0.6-11.9c1.9-3.6,4.3-3.7,12.9-9.6 c5.9-4,8.8-6,10.7-8.7c0.5-0.7,5.3-7.8,4-16.5c-1.2-7.6-5.8-8.7-5.5-15.1c0.2-5.2,3.5-8.9,5.1-10.7c3.9-4.5,8.6-5.8,17.1-8.2 c5.7-1.6,16.5-4.1,18.3-1.3c1.1,1.7-4.1,3.5-4.2,8.3c-0.1,3.9,1.4,8.8,5,11.5c2.8,2.2,5.6,1.9,5.7,3.2c0.2,1.7-4.5,2-6.9,5.7 c-2.2,3.6-1.7,9.2,0.9,12.6c2.3,3,5.3,3.2,5.2,4.9c-0.1,1.9-4,1.7-6.4,5.1C201.1,134,203.2,136.6,201.1,139.4L201.1,139.4z').attr({fill:'#7F4F21', stroke: '#40220F', width: 2});
    //  <path class="st7" d="M127.7,191c-1.7,1.4-4.3,0.3-4.7,0.1c-1.7-0.7-2.6-2-4-4.2c-1.2-1.9-3-4.7-2.2-5.6c0.6-0.7,2.3,0,4.9,1
    //    c4,1.6,6.4,2.5,7,4.7C129.1,188.4,128.8,190.1,127.7,191L127.7,191z"/>
    taurus.path('M127.7,191c-1.7,1.4-4.3,0.3-4.7,0.1c-1.7-0.7-2.6-2-4-4.2c-1.2-1.9-3-4.7-2.2-5.6c0.6-0.7,2.3,0,4.9,1 c4,1.6,6.4,2.5,7,4.7C129.1,188.4,128.8,190.1,127.7,191L127.7,191z').attr({fill:'#727171', stroke: '#3E3A39', width: 2});
    //  <path class="st7" d="M129.8,172.4c1.2,1.1,3.5,3.2,4.3,6.8c0.8,3.2,0.5,8.1-2.2,9.3c-1.5,0.7-3.3-0.1-4.9-0.9
    //    c-1.1-0.5-5.7-2.9-7.1-8.3c-0.9-3.5-0.8-9.1,2-10.3C124.7,167.8,128.4,171.1,129.8,172.4L129.8,172.4z"/>
    taurus.path('M129.8,172.4c1.2,1.1,3.5,3.2,4.3,6.8c0.8,3.2,0.5,8.1-2.2,9.3c-1.5,0.7-3.3-0.1-4.9-0.9 c-1.1-0.5-5.7-2.9-7.1-8.3c-0.9-3.5-0.8-9.1,2-10.3C124.7,167.8,128.4,171.1,129.8,172.4L129.8,172.4z').attr({fill:'#727171', stroke: '#3E3A39', width: 2});
    //  <path class="st7" d="M187.9,205.8c1.8-0.3,2.5-3.9,2.7-5c0.9-4.6-1.7-8.1-2.2-8.7c-0.3-0.4-3.1-3.9-5.1-3.2
    //    c-1.6,0.6-1.8,3.4-1.9,4.3C180.8,199.5,185.2,206.3,187.9,205.8L187.9,205.8z"/>
    taurus.path('M187.9,205.8c1.8-0.3,2.5-3.9,2.7-5c0.9-4.6-1.7-8.1-2.2-8.7c-0.3-0.4-3.1-3.9-5.1-3.2 c-1.6,0.6-1.8,3.4-1.9,4.3C180.8,199.5,185.2,206.3,187.9,205.8L187.9,205.8z').attr({fill:'#727171', stroke: '#3E3A39', width: 2});
    //  <path class="st7" d="M193,203.9c2-0.1,3.3-4.6,4.2-7.7c1.2-4.2,1.1-7.3,1-10.3c-0.2-4.6-1-5.7-1.7-6.3c-1.1-1-2.7-1.4-4.1-1.1
    //    c-3.5,0.7-4.8,5.5-5.2,6.9c-1.4,4.8,0.2,9,1.3,11.9C189.4,199.7,191,204,193,203.9L193,203.9z"/>
    taurus.path('M193,203.9c2-0.1,3.3-4.6,4.2-7.7c1.2-4.2,1.1-7.3,1-10.3c-0.2-4.6-1-5.7-1.7-6.3c-1.1-1-2.7-1.4-4.1-1.1 c-3.5,0.7-4.8,5.5-5.2,6.9c-1.4,4.8,0.2,9,1.3,11.9C189.4,199.7,191,204,193,203.9L193,203.9z').attr({fill:'#727171', stroke: '#3E3A39', width: 2});
    //  <path class="st8" d="M97,41.4c1.2-2.2,3-5,3.7-4.7c0.5,0.2,0,1.8,0.5,2c1,0.5,3.8-4.9,5.4-4.3c0.7,0.2,0.5,1.6,1.1,1.8
    //    c1.6,0.5,4.2-5.5,6.3-5c0.9,0.2,0.7,1.4,1.5,1.7c2.3,0.8,6.1-6.4,8-5.6c0.9,0.3,0.5,1.9,1.3,2.2c1.9,0.7,5.5-7.8,8.3-7.2
    //    c1.3,0.3,1.2,2.2,2.5,2.4c2.4,0.4,4.7-5.8,6.9-5.2c1,0.2,0.9,1.5,1.8,1.7c2.2,0.3,4.4-8.1,6.4-7.8c1,0.2,1,2.7,2,2.8
    //    c1.7,0.2,3.5-6.9,4.9-6.6c0.8,0.1,0.5,2.8,1.5,3.2c2.2,0.8,6.7-9.1,10.2-8.3c1.2,0.3,1.1,1.5,2.3,1.7c2.7,0.4,4.7-5.1,7.3-4.6
    //    c0.9,0.2,0.9,1,1.9,1.3c2.6,0.7,4.8-3.6,6-3.1c1.3,0.6,0.9,7.2-2,8.4c-1.9,0.8-3.5-1.2-5.7-0.3s-2.7,4-3.5,3.8
    //    c-0.7-0.2-0.2-2.9-1-3.2c-1.2-0.4-3.9,5.7-5.2,5.2c-0.6-0.2-0.4-1.7-1-1.9c-1.4-0.5-4.8,5.8-5.4,5.5c-0.4-0.2,0.7-2.9,0.4-3.1
    //    c-0.6-0.3-4.4,6.6-5.2,6.3c-0.5-0.2,0.6-3.1-0.1-3.6c-1.3-0.8-6.3,6.5-7.9,5.6c-0.7-0.4-0.2-2-0.8-2.2c-1.2-0.4-4.4,7.6-5.5,7.3
    //    c-0.7-0.2,0-3.5-0.8-3.7c-1.2-0.4-4.1,7.2-5.6,6.8c-0.9-0.2-0.4-3-1.5-3.5c-1.9-0.7-6,6.4-7.4,5.7c-0.8-0.4-0.1-2.6-0.8-2.8
    //    c-1-0.3-3.1,5.3-4.9,5c-1-0.2-1-2.2-1.9-2.3c-1.5-0.2-2.6,5-4.6,5c-1.3,0-2-2.3-2.9-2c-1.2,0.3-0.6,3.7-2.4,4.7
    //    c-1.3,0.7-2.2-0.6-3.6,0.1c-1.4,0.8-1.9,3.2-2.4,5.6c-0.3,1.5-0.3,2.5-1,2.8c-0.9,0.4-1.9-0.8-2.3-0.5c-0.7,0.5,1.5,3.2,0.6,5
    //    c-0.8,1.7-4,2.5-6,1.3c-2.2-1.3-2-4.6-1.9-6.4C94.6,45.9,95.5,44.2,97,41.4L97,41.4z"/>
    taurus.path('M97,41.4c1.2-2.2,3-5,3.7-4.7c0.5,0.2,0,1.8,0.5,2c1,0.5,3.8-4.9,5.4-4.3c0.7,0.2,0.5,1.6,1.1,1.8 c1.6,0.5,4.2-5.5,6.3-5c0.9,0.2,0.7,1.4,1.5,1.7c2.3,0.8,6.1-6.4,8-5.6c0.9,0.3,0.5,1.9,1.3,2.2c1.9,0.7,5.5-7.8,8.3-7.2 c1.3,0.3,1.2,2.2,2.5,2.4c2.4,0.4,4.7-5.8,6.9-5.2c1,0.2,0.9,1.5,1.8,1.7c2.2,0.3,4.4-8.1,6.4-7.8c1,0.2,1,2.7,2,2.8 c1.7,0.2,3.5-6.9,4.9-6.6c0.8,0.1,0.5,2.8,1.5,3.2c2.2,0.8,6.7-9.1,10.2-8.3c1.2,0.3,1.1,1.5,2.3,1.7c2.7,0.4,4.7-5.1,7.3-4.6 c0.9,0.2,0.9,1,1.9,1.3c2.6,0.7,4.8-3.6,6-3.1c1.3,0.6,0.9,7.2-2,8.4c-1.9,0.8-3.5-1.2-5.7-0.3s-2.7,4-3.5,3.8 c-0.7-0.2-0.2-2.9-1-3.2c-1.2-0.4-3.9,5.7-5.2,5.2c-0.6-0.2-0.4-1.7-1-1.9c-1.4-0.5-4.8,5.8-5.4,5.5c-0.4-0.2,0.7-2.9,0.4-3.1 c-0.6-0.3-4.4,6.6-5.2,6.3c-0.5-0.2,0.6-3.1-0.1-3.6c-1.3-0.8-6.3,6.5-7.9,5.6c-0.7-0.4-0.2-2-0.8-2.2c-1.2-0.4-4.4,7.6-5.5,7.3 c-0.7-0.2,0-3.5-0.8-3.7c-1.2-0.4-4.1,7.2-5.6,6.8c-0.9-0.2-0.4-3-1.5-3.5c-1.9-0.7-6,6.4-7.4,5.7c-0.8-0.4-0.1-2.6-0.8-2.8 c-1-0.3-3.1,5.3-4.9,5c-1-0.2-1-2.2-1.9-2.3c-1.5-0.2-2.6,5-4.6,5c-1.3,0-2-2.3-2.9-2c-1.2,0.3-0.6,3.7-2.4,4.7 c-1.3,0.7-2.2-0.6-3.6,0.1c-1.4,0.8-1.9,3.2-2.4,5.6c-0.3,1.5-0.3,2.5-1,2.8c-0.9,0.4-1.9-0.8-2.3-0.5c-0.7,0.5,1.5,3.2,0.6,5 c-0.8,1.7-4,2.5-6,1.3c-2.2-1.3-2-4.6-1.9-6.4C94.6,45.9,95.5,44.2,97,41.4L97,41.4z').attr({fill:'#6A3906', stroke: '#40220F', width: 2});
    //  <path class="st9" d="M94.3,68.6c0.6-0.1,1.4-1.9,2.8-5.4c1.1-2.7,2-5.5,2.6-8.6c0.1-0.8,0.2-1.2,0.2-1.6c0.3-4-1.7-7.6-1.7-7.6
    //    s-1.7-1.6-3.7-2.5c-1.9-1-2.2-0.5-2.8-1.1c-1.7-1.7,0.1-5.4-0.9-5.9c-0.9-0.4-2.6,2.3-3.4,2c-1.5-0.6,2.1-10,0.6-10.7
    //    c-1-0.5-4.5,2.8-5.9,7.1c-1.3,3.9-0.3,7.5,0.9,11.3C84.9,51.2,90.5,69.3,94.3,68.6L94.3,68.6z"/>
    taurus.path('M94.3,68.6c0.6-0.1,1.4-1.9,2.8-5.4c1.1-2.7,2-5.5,2.6-8.6c0.1-0.8,0.2-1.2,0.2-1.6c0.3-4-1.7-7.6-1.7-7.6 s-1.7-1.6-3.7-2.5c-1.9-1-2.2-0.5-2.8-1.1c-1.7-1.7,0.1-5.4-0.9-5.9c-0.9-0.4-2.6,2.3-3.4,2c-1.5-0.6,2.1-10,0.6-10.7 c-1-0.5-4.5,2.8-5.9,7.1c-1.3,3.9-0.3,7.5,0.9,11.3C84.9,51.2,90.5,69.3,94.3,68.6L94.3,68.6z').attr({fill:'#956134', stroke: '#40220F', width: 2});
    //  <path class="st9" d="M83.3,119.1c2.7,0.7,3.4,7.1,3.4,7.3c0.5,5.1-2.4,7-1.1,11.9c0.3,1.3,0.9,2.4,0.6,3.9c-0.3,1.8-1.6,3.5-2.6,4.3
    //    c-0.2,0.1-1.3,1-1.3,1c-1.6,4-2.3,4.2-2.3,4.2c-1.5,0.5-3.3-2.1-3.9-1.7c-0.7,0.5,1.2,3.8,0.6,4.2c-0.6,0.4-3.2-1.7-4.8-4.5
    //    c0,0-1.3-2.4-1.7-5.1C68.9,136.4,78.3,117.8,83.3,119.1L83.3,119.1z"/>
    taurus.path('M83.3,119.1c2.7,0.7,3.4,7.1,3.4,7.3c0.5,5.1-2.4,7-1.1,11.9c0.3,1.3,0.9,2.4,0.6,3.9c-0.3,1.8-1.6,3.5-2.6,4.3 c-0.2,0.1-1.3,1-1.3,1c-1.6,4-2.3,4.2-2.3,4.2c-1.5,0.5-3.3-2.1-3.9-1.7c-0.7,0.5,1.2,3.8,0.6,4.2c-0.6,0.4-3.2-1.7-4.8-4.5 c0,0-1.3-2.4-1.7-5.1C68.9,136.4,78.3,117.8,83.3,119.1L83.3,119.1z').attr({fill:'#956134', stroke: '#40220F', width: 2});
    //  <path class="st6" d="M122.1,115.1c1.7,2.8,3,3,13.4,9.7c7.9,5.1,9.5,5.3,11.6,4.7c5.2-1.4,7.7-9.7,6-13.1
    //    c-3.5-6.8-5.9-10.3-11.1-13.2c-3.4-1.9-4.4-1.2-7.5-3.4c-5.5-4-5.7-8.7-8.3-8.7c-3,0-5.9,6.5-6.5,11.5
    //    C119.4,104.1,118.8,109.7,122.1,115.1L122.1,115.1z"/>
    taurus.path('M122.1,115.1c1.7,2.8,3,3,13.4,9.7c7.9,5.1,9.5,5.3,11.6,4.7c5.2-1.4,7.7-9.7,6-13.1 c-3.5-6.8-5.9-10.3-11.1-13.2c-3.4-1.9-4.4-1.2-7.5-3.4c-5.5-4-5.7-8.7-8.3-8.7c-3,0-5.9,6.5-6.5,11.5 C119.4,104.1,118.8,109.7,122.1,115.1L122.1,115.1z').attr({fill:'#7F4F21', stroke: '#40220F', width: 2});
    //  <path class="st10" d="M148.2,122.8c1.4-3.8-1.7-7.8-3.5-10.1c-4.7-6.1-13.4-8.5-15.8-6.6c-1.1,0.9,0.4,0.8-1.3,2.6
    //    c-1.6,1.7-3.2,1.2-3.7,2.3c-1.3,2.7,7.2,9,8.9,10.2c5.1,3.8,8.9,6.5,12.1,5.1C147.2,125.5,148.1,123.1,148.2,122.8L148.2,122.8z"/>
    taurus.path('M148.2,122.8c1.4-3.8-1.7-7.8-3.5-10.1c-4.7-6.1-13.4-8.5-15.8-6.6c-1.1,0.9,0.4,0.8-1.3,2.6 c-1.6,1.7-3.2,1.2-3.7,2.3c-1.3,2.7,7.2,9,8.9,10.2c5.1,3.8,8.9,6.5,12.1,5.1C147.2,125.5,148.1,123.1,148.2,122.8L148.2,122.8z').attr({fill:'#711E23', stroke: '#40220F', width: 2});
    //  <path class="st6" d="M77.1,59.8c1.2-2.6,1.8-4.7,2.5-7.6c2.1-8.2,1.2-13.8,2-13.8c0.8,0,2.6,5.7,2.9,8c0.6,4.3,0.4,6.8,1,6.9
    //    c1.1,0.2,2.9-5.5,3.4-5.4c0.7,0.2-2.3,11.3-1.4,11.6c0.7,0.2,3.1-5.9,3.9-5.7c0.6,0.2,0,4.1-0.1,4.5c-0.4,2.5-1.1,3.8-0.7,4
    //    c0.6,0.4,3.2-3.8,4.2-3.4c1.4,0.6-3.7,9.3,0,11.9c2.8,2,6.5,0.3,13.3,1.4c8.5,1.4,14.1,7.3,15.5,8.8c7.1,7.4,2.9,11.3,11,22
    //    c3.7,4.9,4.9,7.2,7.3,11.9c1.4,2.7,2.4,5,1.7,7.3c-0.7,2.2-2.4,2.6-2.8,5.1c-0.5,2.6,1.1,3.5,0.9,5.6c-0.5,3.3-5,5.7-8.5,6.5
    //    c-2.4,0.5-5.4,0.5-14.4-3.4c-12.2-5.2-13.8-8.2-20.6-8.8c-4.9-0.4-9.9,0.8-9.9,1.4c0,0.4-2.6-0.6-2.3-1.1c0.6-1-2.1-5.7-3.9-4.5
    //    c-1,0.6-0.7,3.1-0.6,3.9c0.3,2.2,1.2,3.5,0.9,3.8c-0.6,0.5-3.5-2.8-4.2-2.3c-1.1,0.8,3.6,9.4,2.8,9.9c-0.6,0.4-3.9-4.7-4.8-4.2
    //    c-1.1,0.6,2.2,8.7,1.4,9c-0.7,0.3-3.9-5.7-4.5-5.4c-0.5,0.2,0,4.4,0.9,9.9c0.5,3.6,4.1,8.1,2.3,8.8c-1.9,0.6-7.5-5.3-8.2-11.6
    //    c-0.4-3.6-0.2-2.2,1.1-12.7c0.5-4,1.3-6.3,0.6-7.3c-2.6-3.5-4.9-2.1-7.1-5c-2-2.8-3.7-4.3-2.8-13.6c0.6-5.7,0.5-6.1,1.4-13
    //    c0.5-3.7,1.4-6.4,2.5-9.6c1.2-3.4,3.1-8.8,7.1-14.7C73.8,64.6,75.2,63.9,77.1,59.8L77.1,59.8z"/>
    taurus.path('M77.1,59.8c1.2-2.6,1.8-4.7,2.5-7.6c2.1-8.2,1.2-13.8,2-13.8c0.8,0,2.6,5.7,2.9,8c0.6,4.3,0.4,6.8,1,6.9 c1.1,0.2,2.9-5.5,3.4-5.4c0.7,0.2-2.3,11.3-1.4,11.6c0.7,0.2,3.1-5.9,3.9-5.7c0.6,0.2,0,4.1-0.1,4.5c-0.4,2.5-1.1,3.8-0.7,4 c0.6,0.4,3.2-3.8,4.2-3.4c1.4,0.6-3.7,9.3,0,11.9c2.8,2,6.5,0.3,13.3,1.4c8.5,1.4,14.1,7.3,15.5,8.8c7.1,7.4,2.9,11.3,11,22 c3.7,4.9,4.9,7.2,7.3,11.9c1.4,2.7,2.4,5,1.7,7.3c-0.7,2.2-2.4,2.6-2.8,5.1c-0.5,2.6,1.1,3.5,0.9,5.6c-0.5,3.3-5,5.7-8.5,6.5 c-2.4,0.5-5.4,0.5-14.4-3.4c-12.2-5.2-13.8-8.2-20.6-8.8c-4.9-0.4-9.9,0.8-9.9,1.4c0,0.4-2.6-0.6-2.3-1.1c0.6-1-2.1-5.7-3.9-4.5 c-1,0.6-0.7,3.1-0.6,3.9c0.3,2.2,1.2,3.5,0.9,3.8c-0.6,0.5-3.5-2.8-4.2-2.3c-1.1,0.8,3.6,9.4,2.8,9.9c-0.6,0.4-3.9-4.7-4.8-4.2 c-1.1,0.6,2.2,8.7,1.4,9c-0.7,0.3-3.9-5.7-4.5-5.4c-0.5,0.2,0,4.4,0.9,9.9c0.5,3.6,4.1,8.1,2.3,8.8c-1.9,0.6-7.5-5.3-8.2-11.6 c-0.4-3.6-0.2-2.2,1.1-12.7c0.5-4,1.3-6.3,0.6-7.3c-2.6-3.5-4.9-2.1-7.1-5c-2-2.8-3.7-4.3-2.8-13.6c0.6-5.7,0.5-6.1,1.4-13 c0.5-3.7,1.4-6.4,2.5-9.6c1.2-3.4,3.1-8.8,7.1-14.7C73.8,64.6,75.2,63.9,77.1,59.8L77.1,59.8z').attr({fill:'#7F4F21', stroke: '#40220F', width: 2});
    //  <path class="st11" d="M0,45.1c0,0,19.8,9.7,23.7,9.9c3.3,0.2,6.2,0,7.7-0.4C39,53,43.5,48,53,48.7c15.7,1.2,26.4,20,26.4,20
    //    s-4.6,0.5-7.4,3c-2.7,2.4-3.4,5.1-3.4,7.4c0,2.7-7-13.7-17.3-16.5c-7.9-2.1-12,4.7-23.7,4.7S5.2,52,0,45.1"/>
    taurus.path('M0,45.1c0,0,19.8,9.7,23.7,9.9c3.3,0.2,6.2,0,7.7-0.4C39,53,43.5,48,53,48.7c15.7,1.2,26.4,20,26.4,20 s-4.6,0.5-7.4,3c-2.7,2.4-3.4,5.1-3.4,7.4c0,2.7-7-13.7-17.3-16.5c-7.9-2.1-12,4.7-23.7,4.7S5.2,52,0,45.1').attr({fill:'#7A6A56', stroke: '#3A2B21', width: 2});
    //  <path class="st11" d="M1.3,110.6c0,0,3.4-0.1,9.9-1.6c5.9-3.1,13.8-5.4,20-3.8c3.9,0.9,6.6,3.2,9.2,5.1c2.6,2,5.1,3.6,8.5,3.3
    //    c2.6-0.2,5.1-0.9,7-1.6s3.6-1.2,4.6-1.2c0.5,1.4,0.3,2.8,0.4,4.3s0.4,3,1.8,4.7c1.3,1.5,3,2.1,4.4,2.4s2.5,0.9,2.5,0.9
    //    s-4.5,3.8-10.6,5.3c-6.1,1.5-13.7,1.9-19.5-1.5c-3.1-1.8-4.3-3.9-5.7-5.9s-2.8-3.8-6.2-5c-2-0.7-3.4-1.2-5.8-1.5s-5.5-0.4-11-0.4
    //    c-2.5,0-4.9-0.9-6.7-1.8S1.3,110.6,1.3,110.6L1.3,110.6z"/>
    taurus.path('M1.3,110.6c0,0,3.4-0.1,9.9-1.6c5.9-3.1,13.8-5.4,20-3.8c3.9,0.9,6.6,3.2,9.2,5.1c2.6,2,5.1,3.6,8.5,3.3 c2.6-0.2,5.1-0.9,7-1.6s3.6-1.2,4.6-1.2c0.5,1.4,0.3,2.8,0.4,4.3s0.4,3,1.8,4.7c1.3,1.5,3,2.1,4.4,2.4s2.5,0.9,2.5,0.9 s-4.5,3.8-10.6,5.3c-6.1,1.5-13.7,1.9-19.5-1.5c-3.1-1.8-4.3-3.9-5.7-5.9s-2.8-3.8-6.2-5c-2-0.7-3.4-1.2-5.8-1.5s-5.5-0.4-11-0.4 c-2.5,0-4.9-0.9-6.7-1.8S1.3,110.6,1.3,110.6L1.3,110.6z').attr({fill:'#7A6A56', stroke: '#3A2B21', width: 2});
    //  <path class="st8" d="M61.5,98.4c0.3-1.8-0.8-1.8-1.3-4c-0.6-3.2,1.2-4.2,1.1-5.7s-1.2-3.3,0-6.1c0.3-0.8,1.9-3.1,3.1-4.3
    //    c0.9-1.1,3.2-2.4,3.9-1.7c1.1,1.1-1.7,6.1-0.9,6.7c1.5,1.1,6.2-3.2,7.3-2.5c1.8,1.1-0.3,2.6-1.7,5.9c-1.1,2.7-1.5,3.2-1.3,4
    //    c0.6,2.1,4,2.1,4.4,3.6s-1.8,2.1-2.5,4c-0.6,1.7,3.6,4.6,3.2,7.3c-0.3,2.2-3.3,0.4-3.6,2c-0.4,1.9,2.5,3.3,3,6.5
    //    c0.2,1.6-0.1,2.7-1.5,2.6c-1.8-0.1-2.7-3-3.4-2.8c-0.8,0.3,0.5,3.7-0.6,4c-2.1,0.6-5.4-7.1-5.4-7.1l0.7,1.4c0,0-1.2,1.6-2.6,0.3
    //    c-0.9-0.9-2.4-3-2.9-4c-0.6-1.6-1.3-3.2-1.3-4.6C59.4,100,61.2,100.5,61.5,98.4L61.5,98.4z"/>
    taurus.path('M61.5,98.4c0.3-1.8-0.8-1.8-1.3-4c-0.6-3.2,1.2-4.2,1.1-5.7s-1.2-3.3,0-6.1c0.3-0.8,1.9-3.1,3.1-4.3 c0.9-1.1,3.2-2.4,3.9-1.7c1.1,1.1-1.7,6.1-0.9,6.7c1.5,1.1,6.2-3.2,7.3-2.5c1.8,1.1-0.3,2.6-1.7,5.9c-1.1,2.7-1.5,3.2-1.3,4 c0.6,2.1,4,2.1,4.4,3.6s-1.8,2.1-2.5,4c-0.6,1.7,3.6,4.6,3.2,7.3c-0.3,2.2-3.3,0.4-3.6,2c-0.4,1.9,2.5,3.3,3,6.5 c0.2,1.6-0.1,2.7-1.5,2.6c-1.8-0.1-2.7-3-3.4-2.8c-0.8,0.3,0.5,3.7-0.6,4c-2.1,0.6-5.4-7.1-5.4-7.1l0.7,1.4c0,0-1.2,1.6-2.6,0.3 c-0.9-0.9-2.4-3-2.9-4c-0.6-1.6-1.3-3.2-1.3-4.6C59.4,100,61.2,100.5,61.5,98.4L61.5,98.4z').attr({fill:'#6A3906', stroke: '#40220F', width: 2});
    //  <ellipse transform="matrix(0.3804 -0.9248 0.9248 0.3804 -22.3595 150.5521)" class="st0" cx="101.2" cy="92" rx="4.8" ry="6"/>
    taurus.ellipse().attr({cx: 101.2, cy: 92, rx: 4.8, ry: 6, fill: '#231815'}).transform({a: 0.3804, b: -0.9248, c: 0.9248, d: 0.3804, e: -22.3595, f: 150.5521});
    //  <ellipse transform="matrix(0.1483 -0.9889 0.9889 0.1483 -41.5041 198.0315)" class="st0" cx="94.2" cy="123.1" rx="3.6" ry="5.7"/>
    taurus.ellipse().attr({cx: 94.2, cy: 123.1, rx: 3.6, ry: 5.7, fill: '#231815'}).transform({a: 0.1483, b: -0.9889, c: 0.9889, d: 0.1483, e: -41.5041, f: 198.0315});
    //  <path class="st12" d="M127.9,133.2c1.4-3.6,3.1-4.5,4-6.2c2.5-5.1-5.7-10.9-3.4-15.5c1.4-2.9,5.7-3.1,6.2-3.1
    //    c6.5-0.2,10.8,8,9.6,12.4c-0.6,2.4-1.8,2.3-2.3,5.1c-0.6,3.2,0.8,6.3-0.3,9s-2.5,4-5.9,4.5c-3.3,0.5-7.7-0.6-8.5-3.1
    //    C127.3,136,127.1,135.3,127.9,133.2L127.9,133.2z"/>
    taurus.path('M127.9,133.2c1.4-3.6,3.1-4.5,4-6.2c2.5-5.1-5.7-10.9-3.4-15.5c1.4-2.9,5.7-3.1,6.2-3.1 c6.5-0.2,10.8,8,9.6,12.4c-0.6,2.4-1.8,2.3-2.3,5.1c-0.6,3.2,0.8,6.3-0.3,9s-2.5,4-5.9,4.5c-3.3,0.5-7.7-0.6-8.5-3.1 C127.3,136,127.1,135.3,127.9,133.2L127.9,133.2z').attr({fill:'#3E3A39', stroke: '#231815', width: 2});
    //  <ellipse transform="matrix(0.8637 -0.5039 0.5039 0.8637 -40.4846 84.7862)" class="st13" cx="136.5" cy="117.3" rx="1.2" ry="4.8"/>
    taurus.ellipse().attr({cx: 136.5, cy: 117.3, rx: 1.2, ry: 4.8, fill: '#3E3A39', stroke: '#898989', width: 1}).transform({a: 0.8637, b: -0.5039, c: 0.5039, d: 0.8637, e: -40.4846, f: 84.7862});
    //  <ellipse transform="matrix(0.8262 -0.5634 0.5634 0.8262 -51.5629 98.7034)" class="st14" cx="134.2" cy="132.9" rx="3.6" ry="1.2"/>
    taurus.ellipse().attr({cx: 134.2, cy: 132.9, rx: 3.6, ry: 1.2, fill: '#3E3A39', stroke: '#898989', width: 1}).transform({a: 0.8262, b: -0.5634, c: 0.5634, d: 0.8262, e: -51.5629, f: 98.7034});
    //</defs>
    //<rect x="0" y="0" width="640" height="400" style="fill:#222"/>
    draw.rect(640, 400).fill({color: '#222'}).stroke('none');
    //<use xlink:href="#taurus" x="240" y="60" transform="scale(1.6 1.6) rotate(10)"/>
    draw.use(taurus).move(240, 60).transform({scaleX: 1.6, scaleY: 1.6, rotate: 10});
    // Get parameters from the zodiac
    offsetX = 0;
    offsetY = 0;
    getMinMax();
    offsetX = -xMin + 50;
    offsetY = -yMin + 60;
    drawGrids();
    // Draw edges in the zodiac
    for (i = 0; i < edge.length; i++) {
        e = edge[i];
        ra = star[e[0]].ra;
        dec = star[e[0]].dec;
        xy = raDec2xy(ra, dec);
        x1 = xy[0];
        y1 = xy[1];
        ra = star[e[1]].ra;
        dec = star[e[1]].dec;
        xy = raDec2xy(ra, dec);
        x2 = xy[0];
        y2 = xy[1];
        //<line x1="" y1="" x2="" y2="" stroke="darkgray"/>
        draw.line(x1, y1, x2, y2).attr({stroke: 'darkgray', width: 1});
    }
    // Draw stars in the zodiac
    Object.keys(star).forEach(function(key) {
        ra = star[key].ra;
        dec = star[key].dec;
        xy = raDec2xy(ra, dec);
        cx = xy[0];
        cy = xy[1];
        mag = star[key].mag;
        r = 6 / mag;
        //<ellipse cx="" cy="" rx="" ry="" fill="white"/>
        draw.ellipse().attr({cx: cx, cy: cy, rx: r, ry: r, fill: 'white'});
    });
    //<text transform="matrix(1 0 0 1 70 230)" class="st0 st1 st2">Taurus</text>
    draw.text('Taurus').font({fill: 'white', family: 'Curlz MT', size: 36}).move(70, 230);
    //<text transform="matrix(1 0 0 1 70 270)" class="st0 st3 st4">♉</text>
    draw.text('♉').font({fill: 'white', family: 'Segoe UI Symbol', size: 96}).move(70, 270);
    //</svg>
    var svgNode = document.getElementById('svg').children[0];
    var codeNode = document.getElementById('code');
    // Get generated SVG code
    var svgText = new XMLSerializer().serializeToString(svgNode);
    // Show the code with additional new lines
    codeNode.textContent = svgText.replace(/></g, '>\n<');
}

参考文献

このプログラムは以下の情報またはソフトウェアを参照しています。