在vs2010环境c#语言做winform程序,如何实现用户输入一组坐标,然后时这些点在picturebox里合适的位置显示 15

坐标点有多个例如(31250.25,11500.41),(33256.57,10900.84)(32993.898,13000.394)。。。。,要使这些点构成的图形在p... 坐标点有多个例如(31250.25,11500.41),(33256.57,10900.84)(32993.898,13000.394)。。。。,要使这些点构成的图形在picturebox里用最合适的大小显示(就像CAD中显示全部图像的那种效果)。用GDI+的话,它坐标值只能是整数啊,而且当坐标值很大的时候如何使它在我的窗口中显示啊 展开
 我来答
匿名用户
2012-04-03
展开全部
要将坐标换算的。
比如说1.5这个数值100%显示的时候可以去取值2。
当你放大10倍显示的时候就显示15。
相对放大3倍显示的时候就是1.5*3=4.5近似取值5,这样四舍五入的近似取之显示。人的眼睛没有那么精确,除非你放大,否则1个像素之间的差别是看不出来的。
这里只是显示的取值,但是实际逻辑运算的时候不取近似值,而是绝对值,另外小数点后的位数,最好有所限制,要知道计算机的浮点运算能力有限。
追问
那怎样才能是这些点全部显示在picturebox控件范围内,要看的见啊,这些点的坐标值太大了,显示不出来啊
追答
换算数值啊。
比如picturebox的超出显示范围了,就等比例缩放啊。当数值低于0.5的时候就给他不显示,如果像素高于0.5-1之间,就给他显示1.
所有的图像都是数字组成的,而不要用bitbmp来组成,举个例子吧,一个画面上有一根直线,用数字记录直线的两个点a(0,31100.2),b(554511.4,445.6),一条直线用AB连个点来记录,一条弧线,就用数学中的表达式来计算。曲线则根据不同的曲率不同的转折点来计算。就是所有的点都是数字计算出来的,而不是bitbmp那种像素。这是矢量绘图。这其中的算法可能要自己写,因为好像c#没有类似的处理类。
只有在显示的时候才会用到GDI+写成bitbmp对象。你不需要给用户看所有的,只需要给用户看他们想看的部分就行了,比如滚动的时候就计算旁边的区域,可能需要写一个缓存机制,来处理滚动到那个位置,显示哪个位置。
bitbmp是显示不同的图,但是picturebox的位置是不变的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式