里面是一个画一个中国象棋棋盘的代码,大家帮帮我改改??

liushiying 2005-09-14 10:05:48
主要是画数字1到9和一到九时的效果不好,如何能把字符的中心正好为线条.
Dim jianju As Integer '线条间距
Dim kaishix, kaishiy As Integer '左上角开始的像素
Dim biankuangjj As Integer '棋盘外边与棋盘线条的间距
Dim qizicd As Integer '棋子点线条的长度,既┓与线条的长度
Dim qizijj As Integer '棋子点与线条的间距,既┓与线条的间距
biankuangjj = 6
jianju = 40
kaishix = 20
kaishiy = 32
qizicd = jianju * (2 / 5)
qizijj = 4

Dim Img As New Bitmap(362, 425)
Dim grr As Graphics = Graphics.FromImage(Img)
Dim px As New Pen(Color.Blue, 1)
Dim pk As New Pen(Color.Blue, 4)

grr.DrawRectangle(pk, New Rectangle(kaishix - biankuangjj, kaishiy - biankuangjj, (jianju * 8) + (biankuangjj * 2) + 1, (jianju * 9) + (biankuangjj * 2) + 1)) '画边框
'=========
grr.DrawRectangle(px, New Rectangle(kaishix, kaishiy, jianju * 8, jianju * 9)) '画边框
'=========
Dim i As Integer
'=========
For i = 1 To 8
grr.DrawLine(px, kaishix + (i * jianju), kaishiy, kaishix + (i * jianju), kaishiy + (4 * jianju)) '竖线上部分
grr.DrawLine(px, kaishix + (i * jianju), kaishiy + (5 * jianju), kaishix + (i * jianju), kaishiy + (9 * jianju)) '竖线下部分
Next
'=========
For i = 1 To 9 '横线
grr.DrawLine(px, kaishix, kaishiy + (i * jianju), kaishix + (8 * jianju), kaishiy + (i * jianju))
Next
'=========
grr.DrawLine(px, kaishix + (jianju * 3), kaishiy, kaishix + (5 * jianju), kaishiy + (2 * jianju)) '上面的叉
grr.DrawLine(px, kaishix + (jianju * 3), kaishiy + (2 * jianju), kaishix + (5 * jianju), kaishiy)
'=========
grr.DrawLine(px, kaishix + (jianju * 3), kaishiy + (jianju * 7), kaishix + (5 * jianju), kaishiy + (9 * jianju)) '下面的叉
grr.DrawLine(px, kaishix + (jianju * 3), kaishiy + (9 * jianju), kaishix + (5 * jianju), kaishiy + (jianju * 7))
'=========
'黑跑
For i = 1 To 7 Step 6
grr.DrawLine(px, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 2)) - qizijj, (kaishix + jianju * i) - qizicd, (kaishiy + (jianju * 2)) - qizijj)
grr.DrawLine(px, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 2)) - qizijj, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 2)) - qizicd)

grr.DrawLine(px, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 2)) - qizijj, (kaishix + jianju * i) + qizicd, (kaishiy + (jianju * 2)) - qizijj)
grr.DrawLine(px, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 2)) - qizijj, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 2)) - qizicd)

grr.DrawLine(px, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 2)) + qizijj, (kaishix + jianju * i) + qizicd, (kaishiy + (jianju * 2)) + qizijj)
grr.DrawLine(px, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 2)) + qizijj, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 2)) + qizicd)

grr.DrawLine(px, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 2)) + qizijj, (kaishix + jianju * i) - qizicd, (kaishiy + (jianju * 2)) + qizijj)
grr.DrawLine(px, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 2)) + qizijj, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 2)) + qizicd)
Next
'=========
'红跑
For i = 1 To 7 Step 6
grr.DrawLine(px, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 7)) - qizijj, (kaishix + jianju * i) - qizicd, (kaishiy + (jianju * 7)) - qizijj)
grr.DrawLine(px, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 7)) - qizijj, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 7)) - qizicd)

grr.DrawLine(px, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 7)) - qizijj, (kaishix + jianju * i) + qizicd, (kaishiy + (jianju * 7)) - qizijj)
grr.DrawLine(px, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 7)) - qizijj, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 7)) - qizicd)

grr.DrawLine(px, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 7)) + qizijj, (kaishix + jianju * i) + qizicd, (kaishiy + (jianju * 7)) + qizijj)
grr.DrawLine(px, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 7)) + qizijj, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 7)) + qizicd)

grr.DrawLine(px, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 7)) + qizijj, (kaishix + jianju * i) - qizicd, (kaishiy + (jianju * 7)) + qizijj)
grr.DrawLine(px, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 7)) + qizijj, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 7)) + qizicd)
Next
'=========
...全文
230 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
BlueDog 2006-06-26
  • 打赏
  • 举报
回复
不同画吧,用一个背景图就搞定了。什么都有,而且你要换肤也容易。
超级大笨狼 2006-06-26
  • 打赏
  • 举报
回复
http://superdullwolf.cnzone.net/vml.asp
加个朋友:
MSN:panyuguang962@hotmail.com
偶写象棋都计划10年了,始终没写成。
感觉写一个象棋游戏非常好玩,乐趣超过了棋本身。
liushiying 2005-09-22
  • 打赏
  • 举报
回复
Img = Bitmap.FromFile("G:\XQBitmap\默认\XQBoard.bmp")'程序运行到这一行出现下面的错误是为什么呀??


未处理的“System.Exception”类型的异常出现在 system.drawing.dll 中。

其他信息: 无法从带有索引像素格式的图像创建 Graphics 对象。
liushiying 2005-09-17
  • 打赏
  • 举报
回复
Img = Bitmap.FromFile("G:\XQBitmap\默认\XQBoard.bmp")'程序运行到这一行出现下面的错误是为什么呀??


未处理的“System.Exception”类型的异常出现在 system.drawing.dll 中。

其他信息: 无法从带有索引像素格式的图像创建 Graphics 对象。
hamadou 2005-09-15
  • 打赏
  • 举报
回复
是否想过换一个思路,用绘制方格的思路来组合成棋盘?觉得这样更容易控制。
a_cer 2005-09-14
  • 打赏
  • 举报
回复
这个容易呀,你以线条的中心设定一个rect
在drawstring的时候加一个
Dim strFmt As New StringFormat
strFmt.Alignment = StringAlignment.Center
grr.DrawString(str,fnt,brs,rect,strFmt)
注意要把point换成 rect
liushiying 2005-09-14
  • 打赏
  • 举报
回复
Img = Bitmap.FromFile("G:\XQBitmap\默认\XQBoard.bmp")'程序运行到这一行出现下面的错误是为什么呀??


未处理的“System.Exception”类型的异常出现在 system.drawing.dll 中。

其他信息: 无法从带有索引像素格式的图像创建 Graphics 对象。
liushiying 2005-09-14
  • 打赏
  • 举报
回复
还有"楚河" "汉界"的字符没有加呢??
位置总是不都
liushiying 2005-09-14
  • 打赏
  • 举报
回复
'黑兵
For i = 0 To 8 Step 2
If i <> 0 Then
grr.DrawLine(px, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 3)) - qizijj, (kaishix + jianju * i) - qizicd, (kaishiy + (jianju * 3)) - qizijj)
grr.DrawLine(px, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 3)) - qizijj, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 3)) - qizicd)
grr.DrawLine(px, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 3)) + qizijj, (kaishix + jianju * i) - qizicd, (kaishiy + (jianju * 3)) + qizijj)
grr.DrawLine(px, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 3)) + qizijj, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 3)) + qizicd)
End If
If i <> 8 Then
grr.DrawLine(px, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 3)) - qizijj, (kaishix + jianju * i) + qizicd, (kaishiy + (jianju * 3)) - qizijj)
grr.DrawLine(px, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 3)) - qizijj, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 3)) - qizicd)

grr.DrawLine(px, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 3)) + qizijj, (kaishix + jianju * i) + qizicd, (kaishiy + (jianju * 3)) + qizijj)
grr.DrawLine(px, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 3)) + qizijj, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 3)) + qizicd)
End If
Next
'=========
'红兵
For i = 0 To 8 Step 2
If i <> 0 Then
grr.DrawLine(px, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 6)) - qizijj, (kaishix + jianju * i) - qizicd, (kaishiy + (jianju * 6)) - qizijj)
grr.DrawLine(px, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 6)) - qizijj, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 6)) - qizicd)
grr.DrawLine(px, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 6)) + qizijj, (kaishix + jianju * i) - qizicd, (kaishiy + (jianju * 6)) + qizijj)
grr.DrawLine(px, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 6)) + qizijj, (kaishix + jianju * i) - qizijj, (kaishiy + (jianju * 6)) + qizicd)
End If
If i <> 8 Then
grr.DrawLine(px, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 6)) - qizijj, (kaishix + jianju * i) + qizicd, (kaishiy + (jianju * 6)) - qizijj)
grr.DrawLine(px, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 6)) - qizijj, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 6)) - qizicd)

grr.DrawLine(px, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 6)) + qizijj, (kaishix + jianju * i) + qizicd, (kaishiy + (jianju * 6)) + qizijj)
grr.DrawLine(px, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 6)) + qizijj, (kaishix + jianju * i) + qizijj, (kaishiy + (jianju * 6)) + qizicd)
End If
Next
'--------------------------------------------------
Dim drawString As [String]

Dim drawFont As New Font("Arial", 16, FontStyle.Bold)
Dim drawBrush As New SolidBrush(Color.Black)
Dim drawPoint As PointF
Dim zifux, zifuy As Integer
zifux = 10
zifuy = 0
'=========
For i = 0 To 8
drawString = 9 - i
drawPoint = New PointF(zifux + (jianju * i), zifuy)
grr.DrawString(drawString, drawFont, drawBrush, drawPoint)
Next
'=========
drawFont = New Font("Arial", 11, FontStyle.Bold)
drawString = "一"
drawPoint = New PointF(zifux + (jianju * 0), zifuy + (jianju * 10))
grr.DrawString(drawString, drawFont, drawBrush, drawPoint)

drawString = "二"
drawPoint = New PointF(zifux + (jianju * 1), zifuy + (jianju * 10))
grr.DrawString(drawString, drawFont, drawBrush, drawPoint)

drawString = "三"
drawPoint = New PointF(zifux + (jianju * 2), zifuy + (jianju * 10))
grr.DrawString(drawString, drawFont, drawBrush, drawPoint)

drawString = "四"
drawPoint = New PointF(zifux + (jianju * 3), zifuy + (jianju * 10))
grr.DrawString(drawString, drawFont, drawBrush, drawPoint)

drawString = "五"
drawPoint = New PointF(zifux + (jianju * 4), zifuy + (jianju * 10))
grr.DrawString(drawString, drawFont, drawBrush, drawPoint)

drawString = "六"
drawPoint = New PointF(zifux + (jianju * 5), zifuy + (jianju * 10))
grr.DrawString(drawString, drawFont, drawBrush, drawPoint)

drawString = "七"
drawPoint = New PointF(zifux + (jianju * 6), zifuy + (jianju * 10))
grr.DrawString(drawString, drawFont, drawBrush, drawPoint)

drawString = "八"
drawPoint = New PointF(zifux + (jianju * 7), zifuy + (jianju * 10))
grr.DrawString(drawString, drawFont, drawBrush, drawPoint)

drawString = "九"
drawPoint = New PointF(zifux + (jianju * 8), zifuy + (jianju * 10))
grr.DrawString(drawString, drawFont, drawBrush, drawPoint)
Me.PictureBox1.Image = Img

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧