用DirectX(Managed)做了一个绘图软件, 
其中必须使用浮点数.但Managed绘图接口只接收 int 类型. 
绘出来的图有此时候总有点借位. 请问哪位哥们有解决的办法.

解决方案 »

  1.   

    但Managed绘图接口只接收 int 类型. 
    有这种说法么?我看你还是确认下,肯定有接受其他类型的绘图接口的
      

  2.   

    void CObject::DrawtempCircle(POINT pt1,POINT pt2,DWORD color,BYTE * memory,DWORD lpitch)
    {

    DWORD *start = (DWORD *)memory+ pt1.x + pt1.y*lpitch;
    int vx=pt2.x-pt1.x;
    int vy=pt2.y-pt1.y;
    double r=sqrt((double)(vx*vx+vy*vy));//半径
    int r45=floor(r*0.70710678+0.6);//八分之一

    int vLong,lpx,lpy,rr; 
    rr=r*r;
    for (int vShort=0;vShort<=r45;vShort++)
    {
    vLong=floor(sqrt((double)(rr-vShort*vShort))+0.6);
    lpx=lpitch*vShort;
    lpy=lpitch*vLong;
    *(start+lpx+vLong)=color;
    *(start-lpx+vLong)=color;
    *(start+lpx-vLong)=color;
    *(start-lpx-vLong)=color;

    *(start+lpy+vShort)=color;
    *(start-lpy+vShort)=color;
    *(start+lpy-vShort)=color;
    *(start-lpy-vShort)=color;

    }

      

  3.   

    Surface.DrawCircle(int x,int y,int radius);由于都使用Surface提供的绘制方法.资料又太少.我没有找到浮点的.Managed限制太大还是...,不能直接操作显存,没有画弧的方法,自己与个画弧的方法都不知道怎么画上去(用DrawLine太恐怖了).
    那位有资料也给兄弟介绍哈.