如何绘制上下曲线?

时间:2011-06-08 01:24:46

标签: c#-4.0 drawing

我使用下面的代码制作3个点,将它们绘制成位图,然后将位图绘制到主窗体,但是它似乎总是在点2之前绘制点3,因为Y坐标较低然后点2。有没有办法克服这个问题,因为我需要一条曲线向上和向下弯曲,而不仅仅是上升

            Bitmap bit = new Bitmap(490, 490);
            Graphics g = Graphics.FromImage(bit);
            Graphics form = this.CreateGraphics();
            pntPoints[0] = this.pictureBox1.Location;

            pntPoints[1] = new Point(100,300);
            pntPoints[2] = new Point(200, 150);
            g.DrawCurve(p, pntPoints);


            form.DrawImage(bit, 0, 5);

            bit.Dispose();
            g.Dispose();

2 个答案:

答案 0 :(得分:0)

我建议你加入一个调试功能,自己标记和识别这些点,这样你就能看到它们的确切位置。关闭颜色的像素,点的索引和坐标将帮助您确定将要发生的位置。

现在,我想知道,这两点真的应该是绝对的,还是它们应该与第一点相对?

答案 1 :(得分:0)

第3点的Y坐标不低,实际上更高。 Graphics的(0; 0)点位于左上角,Y值从上到下而不是从下到上增加。因此,结果图像上的点(0; 100)将高于(0; 200)。

如果你想要一条向上然后向下的曲线,你应该将你的第一个点放在(0; 489)中,你的第二个点放在(100,190)中,你的第三个点放在(200,340)中。