我的程序是用API的LINETO 函数画线条,画好后我要将该线条放大和缩小(其实就是加长或缩短),
放大时,线条不能加粗,即不能有锯齿,我目前只能重画,画得长点。有没有用其他方法,比如改变视图或窗体比例,转换等。我查了好多API 的书,但说的都不详细。高手们能发表个意见吗?谢谢。我在提问时系统不让放多分,可我的可用分为210。所以我会给100分如果解决的话。

解决方案 »

  1.   

    用坐标空间和转换即可解决此问题。其中相关 API 为
    SetMapMode
    SetWorldTransform
      

  2.   

    最好的方法就是重画,其原理就是矢量图。
    如果要用图像放大的方法来做的话绝对得不偿失,速度慢,算法难,效果还不好。
    http://blog.csdn.net/wallescai/ 有用VB实现的二次线性插值的例程和算法说明,有兴趣的话楼主自己研究一下吧。
    不过我还是推荐楼主用重画的方法来实现你需要的效果。
    给楼主看一下我的程序只是想让你了解用图像放大的方法有多麻烦。
      

  3.   

    最好的方法就是重画,其原理就是矢量图。
    如果要用图像放大的方法来做的话绝对得不偿失,速度慢,算法难,效果还不好。
    http://blog.csdn.net/wallescai/ 有用VB实现的二次线性插值的例程和算法说明,有兴趣的话楼主自己研究一下吧。
    不过我还是推荐楼主用重画的方法来实现你需要的效果。
    给楼主看一下我的程序只是想让你了解用图像放大的方法有多麻烦。