我想在一个panel1里面实现一个坐标,在利用这个坐标华直线、画图
怎么实现???

解决方案 »

  1.   

    关键看你把原点定在哪儿了,因为panel自己的原点是左上角,这样,你绘图时的坐标就不会出现负值,你也绘不出来,查出范围了。你可以自己定一个原点,例如你可以把panel1的(100,100)点设为圆点建立坐标系,这样绘图时你就得使用相对坐标了,这不用说了吧,初中就学过了,然后可以绘图了
      

  2.   

    参考下Graphics.TransformPoints方法可能对你有帮助.
      

  3.   

    你也可以通过Graphics.RotateTransform,把坐标转一个指定的角度.
      

  4.   

    private void panel1_Paint(object sender, PaintEventArgs e)
    {
       Graphics g=e.Graphics;//得到画面对象
       
       g.DrawArc(...);//进行你的画图操作
    }
      

  5.   

    楼主可以参考如下的代码,
    用如下的代码(方法)可以把坐标转变为左下角为原点的坐标,
    并在其上画出了X和Y两个轴线及一个从原点开始的一条斜线:public void TransformPointsPoint(Graphics g)
    {
    int offset = 10;
    Matrix myMatrix = new Matrix(1, 0, 0, -1, 0, 0);
    g.Transform = myMatrix;
    g.TranslateTransform(this.ClientRectangle.Left + offset, this.ClientRectangle.Bottom - offset, MatrixOrder.Append);
    using (Pen pen = new Pen(this.ForeColor, 3))
    {
    pen.SetLineCap(LineCap.Round, LineCap.ArrowAnchor, DashCap.Triangle);
    //Xdir
    g.DrawLine(pen, 0, 0, this.ClientRectangle.Right - offset, 0);
    //Ydir
    g.DrawLine(pen, 0, 0, 0, this.ClientRectangle.Bottom - offset);
    //line example
    g.DrawLine(SystemPens.ControlText, 0, 0, this.ClientRectangle.Right, this.ClientRectangle.Bottom);
    }
    g.ResetTransform();
    }
      

  6.   


    图表组件wsChart4.5(DLL版)