我使用下面的代码制作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();
答案 0 :(得分:0)
我建议你加入一个调试功能,自己标记和识别这些点,这样你就能看到它们的确切位置。关闭颜色的像素,点的索引和坐标将帮助您确定将要发生的位置。
现在,我想知道,这两点真的应该是绝对的,还是它们应该与第一点相对?
答案 1 :(得分:0)
第3点的Y坐标不低,实际上更高。 Graphics
的(0; 0)点位于左上角,Y值从上到下而不是从下到上增加。因此,结果图像上的点(0; 100)将高于(0; 200)。
如果你想要一条向上然后向下的曲线,你应该将你的第一个点放在(0; 489)中,你的第二个点放在(100,190)中,你的第三个点放在(200,340)中。