如何理解画布中的坐标(50分)

  • 主题发起人 主题发起人 帅义庭
  • 开始时间 开始时间

帅义庭

Unregistered / Unconfirmed
GUEST, unregistred user!
请问如何理解画布中的坐标值,我的屏幕分辨率800*600,请问如何在
800*600之外的区域中绘图,如form1.canvas.textout(860,50,'hello'),
form1.canvas.moveto(500,100),form1.canvas.Lineto(900,200)等。
 
在范围之外完全可以,只是看不见而已:)
 
(x,y) x指横坐标 y指纵坐标
超出屏幕范围或者画布的owner的大小之外的绘图会被屏蔽,看不到的
 
在Canvas上写的东西会被FormPaint抹掉,除非你放在Paint函数中
你在不可见的地方画图,当然不可见,即使你画玩后再移动过去,已经为刷新掉啦
不如不画!!!!!
 
以象素为单位。
如显示分辨率800x600 超过该范围看不见。
但可以画。
 
本人想把一张图,该图中包括点、线、圆、矩形、文字等画在一个比屏幕大的画布上
那该如何实现是好?
 
就直接画,不管分辨率
若想获得‘平铺’功能,可以先画到image上,然后设image为strech:=true
就可以了
 
先搞一个大一点的画布,
画好了StretchBlt 到你的比较小的屏幕上去
 
>>画在一个比屏幕大的画布上

把timage的尺寸设置的比屏幕大可不可以?
 
用scrollbox加image控件不就行了?我给俺娘画能带分析图,刚作
了一个类似的,你要不要?
 
请看下面代码:
procedure TForm1.Button1Click(Sender: TObject);
var
pic:tbitmap;
begin
pic:=tbitmap.create;
pic.Width:=1600;
pic.Height:=1600;
pic.canvas.TextOut(1500,1500,'Hello');
pic.SaveToFile('c:/liu.bmp');
pic.free;
end;
意思是先做一个足够大的tbitmap(就象你想要的),在它上面写字做画,然后再把
它用到其它地方。
 
1. 在 Form 上放一个 ScrollBar, Align 属性设置为 alClient
2. 在 ScrollBar 上放一个 PaintBox, Align 属性设置为 alNone
3. 设定 PaintBox 的 Width 和 Height 即可定制画布的大小

注意 PaintBox 的使用方法, 需要相应 PaintBox 的 OnPaint 事件,
在这个事件中调用 图形绘制函数.
 
接受答案了.
 
to Crane:
你的程序能否让我参考一下?我最近也遇到类似的问题。
谢谢!
E--mail: liang_mayuan@263.net
 
to liuminghao:
我现在有几个问题要问你:
1。能不能把一副位图分成几个部分再分别拷到canvas上去?通过何种方法?
2。如果可以这样做,在显示哪些原本看不见得图形时,能否通过拉动form上已经
设置好的scrollbar去显示?如何显示?
谢谢!小弟我感激不尽!
 
后退
顶部