はじめてのRaphael (1) : お絵かき編

デモ。

HTML

<div id="container">
    <div id="header">
        <h1>Raphael Demo</h1>
    </div>
    <!-- /#header -->
    <div id="content">
        <div class="items">
            <div class="item">
                <h2>1. 円を描く : circle()</h2>
                <p class="item" id="my-paper-0"></p>
            </div>
            <!-- /.item -->
            <div class="item">
                <h2>2. 角丸矩形を描く : rect()</h2>
                <p class="item" id="my-paper-1"></p>
            </div>
            <!-- /.item -->
            <div class="item">
                <h2>3. 楕円を描く : ellipse()</h2>
                <p class="item" id="my-paper-2"></p>
            </div>
            <!-- /.item -->
            <div class="item">
                <h2>4. 三角形を描く : path()</h2>
                <p class="item" id="my-paper-3"></p>
            </div>
            <!-- /.item -->
            <div class="item">
                <h2>5. 矢印を描く : path()</h2>
                <p class="item" id="my-paper-4"></p>
            </div>
            <!-- /.item -->
        </div>
    </div>
    <!-- /#content -->
</div>

CSS

body {
    margin:0;
    font-family:'メイリオ',Meiryo,'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','MS Pゴシック',sans-serif;
}
#header {
    margin-bottom:3em;
}
#header h1 {
    background-color:#234;
    color:#fff;
    margin:0;
    padding:0.5em;
    font-size:1.5em;
}
.items {
}
.item {
    margin:1em;
}
.item h2 {
    font-size:1.3em;
}

JavaScript

/**
 * 極めてシンプルな例
 */
(function(){
    /**
     * [1] Raphael()でキャンバス(paper)をつくる
     */
    var paper = Raphael( "my-paper-0", 64, 64 );
    /**
     * [2] circle()で円を描画し、
     * [3] attr()で属性を設定する
     */
    paper.circle( 32, 32, 24 )
        .attr( { fill : "#345", stroke : "none" } );
})();


/**
 * 角丸矩形を描く
 * Paper.rect( x, y, width, height, radius );
 */
(function(){
    var paper = Raphael( "my-paper-1", 64, 64 );
    paper.rect( 8, 8, 48, 48, 8 )
        .attr( { fill : "#345", stroke : "none" } );
})();

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>三角錐の切断</title>
        <link rel="stylesheet" href="demo.css" type="text/css" media="screen">
        <link rel="stylesheet" href="demo-print.css" type="text/css" media="print">
        
        <script type="text/javascript">

	        var _gaq = _gaq || [];
	        _gaq.push(['_setAccount', 'UA-35267547-3']);
	        _gaq.push(['_trackPageview']);

	        (function() {
		        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
		        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
		        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
		     })();

		</script>
        

        <script src="raphael.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript" charset="utf-8">
//点と名前はセットにしたい 座標と円も
//垂直線を引く
//平行線を引く
//距離の計算
//グリッドみたいな
        	window.addEventListener('load', drawscreen, false);
            function drawscreen() {
            	//canvasの生成
                var r = Raphael("holder", 740, 1050),
                
                //コントロールのデザイン情報を保持する連想配列
                discattr = {fill: "#222", stroke: "#000"};

                //外枠のデザイン
               ...