Foxtable(狐表)用户栏目专家坐堂 → [求助]绘图板文字旋转90度


  共有2329人关注过本帖树形打印复制链接

主题:[求助]绘图板文字旋转90度

帅哥哟,离线,有人找我吗?
liuandwang
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:93 积分:1029 威望:0 精华:0 注册:2018/4/28 23:27:00
[求助]绘图板文字旋转90度  发帖心情 Post By:2021/12/19 15:07:00 [只看该作者]

在绘图板上画矩形,标注尺寸,求助怎么将高度尺寸旋转90度显示,原始代码如下:

 

    Dim p As WinForm.Painter = e.Form.Controls("画图")

    Dim g As Graphics = p.Graphics

         g.Clear(Color.White)        '清空

    Dim L1 As New Pen(Color.Blue,0.2)

    g.DrawRectangle(L,10,10,700,700)   '边框

   

    Dim dr As Row = Tables("明细表").Current

    Dim a,n,m,w,w1,h,b,ztw,zp,sp As Single

    n = 100                                              '初始宽度

    m = 100                                              '初始高度

    w = dr("")

    h = dr("")

   

    g.DrawRectangle(L1,n,m,w,h)                          '外框外线

    

    g.DrawLine(L1,n,m+h+10,n,m+24+h)                    '总宽标尺左竖线,   10为标尺到框底的距离,

    g.DrawLine(L1,n+w,m+10+h,n+w,m+24+h)                '总宽标尺右竖线

    g.DrawLine(L1,n,m+17+h,n+(w-50)/2,m+17+h)           '总宽标尺左横线    50为预留文本尺寸

    g.DrawLine(L1,n+(w-50)/2+50,m+17+h,n+w,m+17+h)      '总宽标尺右横线

    g.DrawLine(L1,n+w+15,m,n+w+29,m)                    '总高标尺上横线,   10为标尺到框的距离

    g.DrawLine(L1,n+w+15,m+h,n+w+29,m+h)                '总高标尺下横线

    g.DrawLine(L1,n+w+22,m,n+w+22,m+(h-50)/2-7)         '总高标尺上竖线    50为预留文本尺寸

    g.DrawLine(L1,n+w+22,m+h,n+w+22,m+(h-50)/2+64)      '总高标尺下竖线

 

Dim fnt As New Font("宋体",12)                                 '总尺寸字体

Dim msg As String = dr("宽")                                   '总宽尺寸

g.DrawString(msg,fnt,Brushes.Red,n+w/2,m+h)

Dim msg1 As String = dr("高")           '总高尺寸

g.DrawString(msg1,fnt,Brushes.Red,n+w,m+h/2)

 

p.Repaint()


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107813 积分:548416 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/19 20:42:00 [只看该作者]

比如高100宽50 的矩形旋转90度,不就相当于绘制一个高50宽100的矩形?调换一下高和宽不就行了

 回到顶部
帅哥哟,离线,有人找我吗?
liuandwang
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:93 积分:1029 威望:0 精华:0 注册:2018/4/28 23:27:00
  发帖心情 Post By:2021/12/20 8:50:00 [只看该作者]

我需要3个矩形堆叠在一起,需要标注3个高度尺寸,横向排列的尺寸数字会占用很宽的地方,
所以需要将所标注的尺寸旋转90度,进行竖向显示

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107813 积分:548416 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/20 9:05:00 [只看该作者]

没看懂,截图说明一下

 回到顶部
帅哥哟,离线,有人找我吗?
liuandwang
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:93 积分:1029 威望:0 精华:0 注册:2018/4/28 23:27:00
  发帖心情 Post By:2021/12/20 9:51:00 [只看该作者]

做成的效果图图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107813 积分:548416 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/20 10:05:00 [只看该作者]

意思是把1800这种文字竖向绘制是吧,我还以为是绘制矩形

参考:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=168762&skin=0

主要是这2句
g.TranslateTransform((img.width-size.width)/2, img.Height - size.height - 400) '设置文字的绘制起点
g.RotateTransform(-90) '根据需要改变角度

 回到顶部