请教,用VB画图可以生成矢量图件么?该用什么语句?

解决方案 »

  1.   

    可以,你用API函数完全没问题
      

  2.   

    用API也不行的矢量图其实只是一种数据存储格式而已
    读取显示的时候才真正绘图存储时只存储比如直线的两点、圆形的原点和半径之类的
      

  3.   

    当然可以,不要说VB,就是早期DOS编程也早就实现矢量绘制和存储了。
    看看AUTOCAD的运作方式:
    通过菜单(主菜单或弹出式菜单)或工具条指明下一步绘制的类型,线L,方R,圆C,贝塞尔曲线B……然后根据类型定义关键点,存储时就以“绘制类型标识符:关键点数据1,关键点数据2……;绘制类型标识符:关键点数据1,关键点数据2……;……”的格式存储,更容易的是按类型分行存储,这样整行整行读入,一行就是一个绘制图形对象的完整定义。
      

  4.   

    form++ mfc library pro
    这个东西可以实现,不过是要收费的
      

  5.   

    这个和你用什么语言,用什么API根本没有任何关系。
    所谓矢量图,就是可以用一些标记来定义并且重画的图像,并且可以做到无损失放大和缩小。
    你自己定义一套格式画圆画线什么,在画图像的时候存放在数组中,然后保存为文件,读取的时候再把绘画的动作重新做一遍就可以了。我以前也回答过一个这样问题,都几乎把整个框架都写出来了。
    我帮你看看是否还能找出来吧。我学VB里的头3个程序中就有一个是这玩意儿。
      

  6.   

    哈哈,超过300条记录了,找不到了,
    给你个大概的思路,定义一个结构:
    比如:
    type point
     x as long
     y as long
    end typetype GRAPH
       drawtype as long‘假设线段的话为1,方块为2,圆为3
       drawcolor as long ’颜色,不用说了吧
       begindot as point ‘起点,如果是圆的画就是圆心
       enddot as point  ’终点,如果是圆的画就根据到圆心的距离计算半径
    end type这是个最简单的结构,可以用来记录你画的线段,方块,或圆等
    然后定义:
    DIM MyDraw(1000) as GRAPH '假定你的文件最多可以有1001个矢量元素(从0到1000哦)
    ...         ‘也可以使用动态数组,这样你的矢量元素就可以任意啦,更灵活
    呵呵写文件不难,结构可以直接写到2进制文件,体积也不大的,读的时候更是一下自全部读入一个相同的结构里。
    我想这些应该已经差不多了吧,如果你愿意的话还可以更进一步,比如在结构中定义线的样式和粗细,还有填充方式等等。
    反正我的经验是只要你不需要线段拾取的话就根本不需要用到一个API。