• 14912阅读
  • 13回复

【提问】QT下画可自动变换标尺的坐标图,用什么类?最好有个例子程序,谢谢!!! [复制链接]

上一主题 下一主题
离线maxur
 
只看楼主 倒序阅读 楼主  发表于: 2005-10-21
谢谢!!
[ 此贴被XChinux在2005-10-21 23:49重新编辑 ]
离线tdns

只看该作者 1楼 发表于: 2005-10-24
你说得太笼统了,干吗不描述的详细一点?
类似的工作我也做过,不过坐标系的变换处理我们都是自己计算的,只是把算好的结果给负责画图的类去画。
离线maxur
只看该作者 2楼 发表于: 2005-10-24
可以告诉我,你用的画图类是哪一个吗?我是第一次用qt。能把你的程序给我发一份吗?我的邮箱是dingmin@lenovo.com,万分感谢!
离线tdns

只看该作者 3楼 发表于: 2005-10-25
我们的程序可是涉密的哦!呵呵。不过可以给你提供一点大致思路。
我是自己建立的一套图形库,采用了Composite模式,每个图形元素比如点、直线、弧等都有相关的参数,其中缩放、偏移、选取等等都是利用图形学里的公式计算的,绘图是通过重载基类定义的这么一个接口: virtual void draw(QPainter &)来实现的。QPainter里面有好多绘制图元的函数,很方便,可以直接拿来用。
至于你说的自动变换标尺,就应该是使用图形库的一种类,它负责计算当前缩放的比例系数和偏移量,然后使用图形库的对象,比如直线或者折线,把你的坐标轴画出来。做图形处理的都会碰到坐标系变换问题,如果你以前做过相关工作你应该不会陌生吧。
离线maxur
只看该作者 4楼 发表于: 2005-10-25
谢谢!:)
离线wuxian610
只看该作者 5楼 发表于: 2005-10-27
请两位高手帮忙
谢谢先:

    请问在QT中如何 load 以及显示矢量图,如.wmf之类的??
    正在做相关工作.
离线tdns

只看该作者 6楼 发表于: 2005-10-28
矢量图我没处理过,不过我也可以大致跟你探讨一下。
首先,你说的矢量图有没有一个标准的格式?如果有的话而且你也能够控制那么问题就好办多了。你也可以建立一套自己的图形库,然后按照矢量图的格式将矢量图文件中的数据读入,生成建立在图形库基础上的图元和图符对象,最后再在QPaintDevice上面画出来。
我以前写的图形库大致就是建立在这么个思想上面,我的图符编辑器就是使用自己定义的文件格式,将组成图符的图元的矢量数据保存在xml文件里,然后再在另一个显示系统里面读取数据,生成图符对象来显示。大致就是这样了,你可以试一试
离线wuxian610
只看该作者 7楼 发表于: 2005-11-02
谢谢哈~tdns.
您是个高手.
能留个电邮吗?
离线wuxian610
只看该作者 8楼 发表于: 2005-11-03
你说的"将组成图符的图元的矢量数据保存在xml文件里", 这个xml文件是什么东西??怎么保存??
离线running
只看该作者 9楼 发表于: 2005-11-03
QPAINTER
画板QCANVAS也不错
离线running
只看该作者 10楼 发表于: 2005-11-03
QPAINTER
画板QCANVAS也不错
离线tdns

只看该作者 11楼 发表于: 2005-11-03
xml是一种标记语言,你可以找一些xml方面的书看看。Qt里面的xml模块提供了对xml两种接口DOM和SAX的支持,比如QDomDocument, QDomElement等类,用法可以在帮助文档里面查到。使用这些类可以很方便的对xml文件进行数据存取。
关于QCanvas这个该死的类,一开始我对他抱有挺大希望的,后来发现完全不是那么回事。首先它提供的图元不是很丰富,如果你想实现一些更复杂一点的功能你不得不重新继承新的类,或者重载很多接口,而且不一定好用。QCanvas的刷新也很有问题,总是闪,而且有残留。它并不是整个绘图区域一起刷新的,而是分块。其实人家的想法是好的,提供一个图元库省的用户作重复性劳动,而且算法也比较先进,但是在Qt3里面没有实现好,所以Qt4.0.1的版本中就把这个模块整个拿掉了。我去QtForum里问过,老外说正在开发呢,应该在Qt4.1的版本里面发布出来。所以还是相信自己吧,还有那些用起来比较成熟的东西,呵呵。
我的电邮:tdns@163.com,大家有空一起讨论问题。
离线weihua
只看该作者 12楼 发表于: 2006-04-12
try QWT
离线litq
只看该作者 13楼 发表于: 2006-04-14
litq@litsoft.com.cn

我正在做QT开发,项目快结束了,你在LENOVO,把我照片过去吧

I am not in Lenovo
业务电话(北京) 电话 13240326107
快速回复
限100 字节
 
上一个 下一个