Canvas繪制象棋棋盤

學(xué)習(xí)Canvas可以通過一些例子來增加成就感
一下是一個輸出一個象棋棋盤的例子


象棋棋盤
<html>
<body>
<canvas id="canvas1" width="560" height="620"></canvas>
        <script type="text/javascript">
        
            //以要畫的點為原點定義四個象限
            var pointDefine=[[-1,-1],[1,-1],[-1,1],[1,1]];
            //要繪制標(biāo)記方位 全部
            var allP =[0,1,2,3];
            //要繪制標(biāo)記方位 左側(cè)
            var leftP =[1,3];
            //要繪制標(biāo)記方位 右側(cè)
            var rightP =[0,2];
            
            var cl = 70;
            /**
             * 炮和兵位置信息
             * 每一組位置信息為撮抓,橫向位置磷醋,縱向位置忿檩,縱向位置上與之相對應(yīng)的點的距離嗅辣,要繪制標(biāo)記方位(左側(cè)還是右側(cè)還是全部)
             */
            var points=[
                [0,3,3,leftP],
                [8,3,3,rightP],
                [2,3,3,allP],
                [4,3,3,allP],
                [6,3,3,allP],
                [1,2,5,allP],
                [7,2,5,allP]
                
            ];
            
            var pointPlace = function (ctx,x,y,pointInfo){
                var l = 10;
                var space = 3;
                for ( var i = 0; i <pointInfo.length; i++){
                    var xinfo = pointDefine[pointInfo[i]][0];
                    var yinfo = pointDefine[pointInfo[i]][1];
                    ctx.moveTo(x+xinfo*space,y+yinfo*l);
                    ctx.lineTo(x+xinfo*space,y+yinfo*space);
                    ctx.lineTo(x+xinfo*l,y+yinfo*space);
                }
            }
        
            var drawX = function (ctx,x,y){
                ctx.moveTo((x-1)*cl,(y-1)*cl); 
                ctx.lineTo((x+1)*cl,(y+1)*cl);
                ctx.moveTo((x+1)*cl,(y-1)*cl);
                ctx.lineTo((x-1)*cl,(y+1)*cl);
            }
            
            var drawProitPare = function (ctx,x,y,cl){
                pointPlace(ctx,x,y,allP);
                pointPlace(ctx,x,y +cl*5,allP);
            }
            
            var drawProitPare = function (ctx,x,y,yplus,cl,pointP){
                pointPlace(ctx,cl*x,cl*y,pointP);
                pointPlace(ctx,cl*x,cl*y +cl*yplus,pointP);
            }
            
            /**
             * 畫象棋棋盤
             */
            var drawTable = function(ctx){
                for(var clo = 0;clo<8 ;clo++){
                    for(var ln = 0;ln<9 ;ln++){ 
                        if(ln!=4){
                            ctx.strokeRect(clo*cl,ln*cl,cl,cl);
                        }else{
                            ctx.strokeRect(0,ln*cl,cl*8,cl);
                        }
                    }
                    ctx.strokeRect(0,0,560,620);
                }
            }
            
            var canvas1 = document.getElementById("canvas1");
            var ctx = canvas1.getContext("2d");
            
            //設(shè)置線寬 線的顏色
            ctx.lineWidth = 1;
            ctx.strokeStyle = "dodgerblue";
            drawTable(ctx);
            
            var ctx2 = canvas1.getContext("2d");
            drawX(ctx2,4,1);
            drawX(ctx2,4,8);
            
            for(var i = 0; i <points.length; i++){
                drawProitPare(ctx2,points[i][0],points[i][1],points[i][2],cl,points[i][3]);
            }
            
            ctx2.strokeStyle = "dodgerblue";
            ctx2.font='bolder 48px 隸書';
            ctx2.rotate(90 * Math.PI/180)
            ctx2.strokeText("漢",cl*4+10,-485);
            ctx2.strokeText("界",cl*4+10,-435);
            ctx2.rotate(-180 * Math.PI/180)
            ctx2.strokeText("楚",-(cl*5-10),70);
            ctx2.strokeText("河",-(cl*5-10),120);
            ctx2.stroke();
            
        </script>
</body>
</html>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市瘦材,隨后出現(xiàn)的幾起案子境氢,更是在濱河造成了極大的恐慌枉氮,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抬旺,死亡現(xiàn)場離奇詭異弊予,居然都是意外死亡,警方通過查閱死者的電腦和手機开财,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門汉柒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人责鳍,你說我怎么就攤上這事碾褂。” “怎么了历葛?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵斋扰,是天一觀的道長。 經(jīng)常有香客問我啃洋,道長传货,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任宏娄,我火速辦了婚禮问裕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘孵坚。我一直安慰自己粮宛,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布卖宠。 她就那樣靜靜地躺著巍杈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪扛伍。 梳的紋絲不亂的頭發(fā)上筷畦,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛绩鸣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播渔肩,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拇惋!你這毒婦竟也來了周偎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤撑帖,失蹤者是張志新(化名)和其女友劉穎蓉坎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體磷仰,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡袍嬉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了灶平。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伺通。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖逢享,靈堂內(nèi)的尸體忽然破棺而出罐监,到底是詐尸還是另有隱情,我是刑警寧澤瞒爬,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布弓柱,位于F島的核電站,受9級特大地震影響侧但,放射性物質(zhì)發(fā)生泄漏矢空。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一禀横、第九天 我趴在偏房一處隱蔽的房頂上張望屁药。 院中可真熱鬧,春花似錦柏锄、人聲如沸酿箭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缭嫡。三九已至,卻和暖如春抬闷,著一層夾襖步出監(jiān)牢的瞬間妇蛀,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留讥耗,地道東北人有勾。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓疹启,卻偏偏與公主長得像古程,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子喊崖,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 趙國榮 在我國棋壇上挣磨,叱咤風(fēng)云,馳騁枰場的高手所在多有荤懂,而作為年青一代棋手的代表趙國榮茁裙,其成績是顯赫的。他的追求节仿、...
    上下筆尖子閱讀 4,493評論 2 11
  • 1924年4月27日下午晤锥,時鐘即將敲響2:00,在紐約市阿拉瑪克酒店的一間大房里廊宪,俄羅斯國際象棋特級大師亞歷山大·...
    速兔閱讀 798評論 0 0
  • 姓名:富智燚 單位:海南蔚藍時代實業(yè)有限公司 361期努力一組 【日精進打卡第358天】 【知~學(xué)習(xí)】 《六項精進...
    復(fù)制2閱讀 58評論 0 0
  • 那天和閨蜜一起坐車, 她說新聞出來我們福建的一個美女老師獨身去日本旅行已經(jīng)失聯(lián)好幾天了, 我悠悠的說了一句: ‘現(xiàn)...
    也籽閱讀 507評論 2 3
  • 讀書多年箭启,常常被人問這樣一個問題——讀了那么多年書壕翩,工作也就那樣,收入也就是個中等水平傅寡,甚至還沒有有些不用怎么讀書...
    迎向開闊的人生閱讀 447評論 1 6