欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#繪制中國(guó)象棋棋盤

 更新時(shí)間:2021年01月19日 14:18:22   作者:寒茗清霧  
這篇文章主要為大家詳細(xì)介紹了C#繪制中國(guó)象棋棋盤,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

在C#繪制中國(guó)象棋棋盤是C#程序設(shè)計(jì)中GDI+的一個(gè)重要組成部分。這也是非??简?yàn)編程技巧的操作。在繪制之前首先要對(duì)棋盤有一個(gè)完整的認(rèn)識(shí)。下面是完成后的輸出圖案。

1.在制作過程中用到了背景圖片如下:

2.棋盤的橫豎交叉線的坐標(biāo)如下圖(棋盤橫向、豎向都以50象素間距繪制)

3.更細(xì)的坐標(biāo)分布如下圖

完整的代碼如下圖

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Chinese_chessboard
{
 public partial class FrmMain : Form
 {
  public FrmMain()
  {
   InitializeComponent();
  }

  private void FrmMain_Paint(object sender, PaintEventArgs e)
  {
   if (!File.Exists(Application.StartupPath + @"\" + "bg.jpg"))
   {
    MessageBox.Show("請(qǐng)把素材中的bg.jpg圖片文件放到可執(zhí)行程序相同文件夾中,并重新啟動(dòng)程序!", "提示"); Application.Exit();
   }
   Console.WriteLine("C#編程交流群:485532597");
   Graphics g = e.Graphics; // 獲取一個(gè)Graphics對(duì)象
   g.Clear(Color.Coral);  //用珊瑚色清除窗體
   Font font1 = new Font("黑體", 25, FontStyle.Regular);
   int s = (int)(font1.Size / 0.6);
   int s2 = (int)font1.Height;
   Image img = Image.FromFile("bg.jpg");
   g.DrawImage(Image.FromFile(Application.StartupPath + @"\" + "bg.jpg"), 10, 10, 430, 480);  //繪制背景圖
   g.DrawRectangle(new Pen(Color.Black, 3), new Rectangle(new Point(20, 20), new Size(410, 460))); //繪制框圖

   Pen pen = new Pen(Color.Black, 1);
   //繪制水平線
   for (int i = 0; i < 10; i++)
   {
    g.DrawLine(pen, new Point(25, 25 + (i * 50)), new Point(425, 25 + (i * 50)));
   }


   //繪制垂直線
   for (int i = 0; i < 9; i++)
   {
    g.DrawLine(pen, new Point(25 + (i * 50), 25), new Point(25 + (i * 50), 225));
    g.DrawLine(pen, new Point(25 + (i * 50), 275), new Point(25 + (i * 50), 475));
   }
   //return;
   //繪制將士位置斜線
   g.DrawLine(pen, new Point(175, 25), new Point(275, 125));
   g.DrawLine(pen, new Point(275, 25), new Point(175, 125));
   g.DrawLine(pen, new Point(175, 375), new Point(275, 475));
   g.DrawLine(pen, new Point(175, 475), new Point(275, 375));



   //兵位(炮位)線,只畫一個(gè)
   g.DrawLine(pen, new Point(30, 160), new Point(30, 170));
   g.DrawLine(pen, new Point(30, 170), new Point(40, 170));
   g.DrawLine(pen, new Point(30, 180), new Point(30, 190));
   g.DrawLine(pen, new Point(30, 180), new Point(40, 180));

   g.DrawString("楚 河", new Font("黑體", 25), Brushes.Black, new Point(50, 235));

   g.TranslateTransform(300, 235); //平移坐標(biāo)軸
   g.RotateTransform(180); //進(jìn)行180度旋轉(zhuǎn)
   g.DrawString("漢 界", new Font("黑體", 25), Brushes.Black, new Point(-100, -35));
   g.ResetTransform(); //坐標(biāo)軸復(fù)位 
   
   this.DrawAngle(g, pen, new Point(125, 175), "all");
   this.DrawAngle(g, pen, new Point(425, 175), "left");
   this.DrawAngle(g, pen, new Point(225, 175), "all");
   this.DrawAngle(g, pen, new Point(425, 175), "left");
   this.DrawAngle(g, pen, new Point(325, 175), "all");
   this.DrawAngle(g, pen, new Point(425, 175), "left");
   this.DrawAngle(g, pen, new Point(75, 125), "all");
   this.DrawAngle(g, pen, new Point(375, 125), "all");

   this.DrawAngle(g, pen, new Point(25, 325), "right");
   this.DrawAngle(g, pen, new Point(125, 325), "all");
   this.DrawAngle(g, pen, new Point(225, 325), "all");
   this.DrawAngle(g, pen, new Point(325, 325), "all");
   this.DrawAngle(g, pen, new Point(425, 325), "left");
   this.DrawAngle(g, pen, new Point(75, 375), "all");
   this.DrawAngle(g, pen, new Point(375, 375), "all");
   g.Dispose();   //釋放對(duì)象
  }
  private void DrawAngle(Graphics g,Pen pen, Point point,string str)
  {
   Point p1 = new Point(point.X + 5, point.Y + 5);
   Point p2= new Point(point.X - 5, point.Y + 5);
   Point p3= new Point(point.X -5, point.Y - 5);
   Point p4 = new Point(point.X +5, point.Y -5);
   if(str=="right"||str=="all")
   {
    //p1 p4
    g.DrawLine(pen, p1, new Point(p1.X + 10, p1.Y));
    g.DrawLine(pen, p1, new Point(p1.X, p1.Y+10));
    g.DrawLine(pen, p4, new Point(p4.X + 10, p4.Y));
    g.DrawLine(pen, p4, new Point(p4.X, p4.Y-10));
   }
   if(str=="left" || str == "all")
   {
    //p2 p3
    g.DrawLine(pen, p2, new Point(p2.X - 10, p2.Y));
    g.DrawLine(pen, p2, new Point(p2.X, p2.Y+10));
    g.DrawLine(pen, p3, new Point(p3.X - 10, p3.Y));
    g.DrawLine(pen, p3, new Point(p3.X, p3.Y - 10));
   }
  }
 }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#中WebClient實(shí)現(xiàn)文件下載

    C#中WebClient實(shí)現(xiàn)文件下載

    本篇文章主要介紹了C#中WebClient實(shí)現(xiàn)文件下載,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • Unity3D實(shí)現(xiàn)待機(jī)狀態(tài)圖片循環(huán)淡入淡出

    Unity3D實(shí)現(xiàn)待機(jī)狀態(tài)圖片循環(huán)淡入淡出

    這篇文章主要為大家詳細(xì)介紹了Unity3D實(shí)現(xiàn)待機(jī)狀態(tài)圖片循環(huán)淡入淡出,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C#靜態(tài)static的用法實(shí)例分析

    C#靜態(tài)static的用法實(shí)例分析

    這篇文章主要介紹了C#靜態(tài)static的用法,以實(shí)例形式較為深入的分析了靜態(tài)類、靜態(tài)變量、靜態(tài)方法以及靜態(tài)構(gòu)造函數(shù)的特性與用法,需要的朋友可以參考下
    2014-10-10
  • C#實(shí)現(xiàn)封面圖片生成器的示例代碼

    C#實(shí)現(xiàn)封面圖片生成器的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)簡(jiǎn)單的封面圖片生成器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • c#枚舉值增加特性說明(推薦)

    c#枚舉值增加特性說明(推薦)

    這篇文章主要介紹了c#枚舉值增加特性說明(推薦),需要的朋友可以參考下
    2017-05-05
  • C#使用Process類調(diào)用外部程序分解

    C#使用Process類調(diào)用外部程序分解

    這篇文章主要介紹了C#使用Process類調(diào)用外部程序分解,分別介紹了啟動(dòng)外部程序、關(guān)掉外部程序、關(guān)掉后調(diào)用一些方法的方法,需要的朋友可以參考下
    2014-07-07
  • 深入了解c# 匿名類型

    深入了解c# 匿名類型

    這篇文章主要介紹了c# 匿名類型的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C#導(dǎo)出數(shù)據(jù)到Excel文件的方法

    C#導(dǎo)出數(shù)據(jù)到Excel文件的方法

    這篇文章主要介紹了C#導(dǎo)出數(shù)據(jù)到Excel文件的方法,涉及C#操作Excel的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • C#實(shí)現(xiàn)用于操作wav聲音文件的類實(shí)例

    C#實(shí)現(xiàn)用于操作wav聲音文件的類實(shí)例

    這篇文章主要介紹了C#實(shí)現(xiàn)用于操作wav聲音文件的類,實(shí)例分析了C#操作wav音頻文件的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • 淺談C# AOP的簡(jiǎn)單實(shí)現(xiàn)

    淺談C# AOP的簡(jiǎn)單實(shí)現(xiàn)

    這篇文章主要介紹了淺談C# AOP的簡(jiǎn)單實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07

最新評(píng)論