以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]绘图板文字旋转90度 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=173845) |
-- 作者:liuandwang -- 发布时间:2021/12/19 15:07:00 -- [求助]绘图板文字旋转90度 在绘图板上画矩形,标注尺寸,求助怎么将高度尺寸旋转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() |
-- 作者:有点蓝 -- 发布时间:2021/12/19 20:42:00 -- 比如高100宽50 的矩形旋转90度,不就相当于绘制一个高50宽100的矩形?调换一下高和宽不就行了 |
-- 作者:liuandwang -- 发布时间:2021/12/20 8:50:00 -- 我需要3个矩形堆叠在一起,需要标注3个高度尺寸,横向排列的尺寸数字会占用很宽的地方, 所以需要将所标注的尺寸旋转90度,进行竖向显示
|
-- 作者:有点蓝 -- 发布时间:2021/12/20 9:05:00 -- 没看懂,截图说明一下 |
-- 作者:liuandwang -- 发布时间:2021/12/20 9:51:00 -- 做成的效果图 |
-- 作者:有点蓝 -- 发布时间: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) \'根据需要改变角度 |