T
Tony Johansson
Here is the code that draw the x axes and the y axes with arrow on each
line.
I just wonder if it's possible to make the arrow less jagged ?
private void pnlDiagram_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
//Move origo down to the left corner
g.TranslateTransform(pnlDiagram.Width * 1/10, pnlDiagram.Height *
9/10);
marginal = (float)Math.Min(0.1 * pnlDiagram.Width, 0.1 *
pnlDiagram.Height);
Pen pen = new Pen(Color.Blue, 1);
//Create Y axes
Point yaxelStart = new Point(0, 0);
Point yaxelEnd = new Point(0, -pnlDiagram.Height +
(int)(2*marginal));
g.DrawLine(pen, yaxelStart, yaxelEnd);
//Create arrow on Y axes
PointF[] arrowY = new PointF[3];
arrowY[0] = new PointF(-6, -pnlDiagram.Height + (int)(2 *
marginal));
arrowY[1] = new PointF(6, -pnlDiagram.Height + (int)(2 *
marginal));
arrowY[2] = new PointF(0, -pnlDiagram.Height + (int)(2 *
marginal) - 20);
g.FillPolygon(Brushes.Blue, arrowY);
g.DrawPolygon(Pens.Blue, arrowY);
//Create X axes
Point xaxelStart = new Point(0, 0);
Point xaxelEnd = new Point(pnlDiagram.Width - (int)(2 * marginal),
0);
g.DrawLine(pen, xaxelStart, xaxelEnd);
//Create arrow on X axes
PointF[] arrowX = new PointF[3];
arrowX[0] = new PointF(pnlDiagram.Width - (int)(2 * marginal), -6);
arrowX[1] = new PointF(pnlDiagram.Width - (int)(2 * marginal), 6);
arrowX[2] = new PointF(pnlDiagram.Width - (int)(2 * marginal) + 20,
0);
g.FillPolygon(Brushes.Blue, arrowX);
g.DrawPolygon(Pens.Blue, arrowX);
}
//Tony
line.
I just wonder if it's possible to make the arrow less jagged ?
private void pnlDiagram_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
//Move origo down to the left corner
g.TranslateTransform(pnlDiagram.Width * 1/10, pnlDiagram.Height *
9/10);
marginal = (float)Math.Min(0.1 * pnlDiagram.Width, 0.1 *
pnlDiagram.Height);
Pen pen = new Pen(Color.Blue, 1);
//Create Y axes
Point yaxelStart = new Point(0, 0);
Point yaxelEnd = new Point(0, -pnlDiagram.Height +
(int)(2*marginal));
g.DrawLine(pen, yaxelStart, yaxelEnd);
//Create arrow on Y axes
PointF[] arrowY = new PointF[3];
arrowY[0] = new PointF(-6, -pnlDiagram.Height + (int)(2 *
marginal));
arrowY[1] = new PointF(6, -pnlDiagram.Height + (int)(2 *
marginal));
arrowY[2] = new PointF(0, -pnlDiagram.Height + (int)(2 *
marginal) - 20);
g.FillPolygon(Brushes.Blue, arrowY);
g.DrawPolygon(Pens.Blue, arrowY);
//Create X axes
Point xaxelStart = new Point(0, 0);
Point xaxelEnd = new Point(pnlDiagram.Width - (int)(2 * marginal),
0);
g.DrawLine(pen, xaxelStart, xaxelEnd);
//Create arrow on X axes
PointF[] arrowX = new PointF[3];
arrowX[0] = new PointF(pnlDiagram.Width - (int)(2 * marginal), -6);
arrowX[1] = new PointF(pnlDiagram.Width - (int)(2 * marginal), 6);
arrowX[2] = new PointF(pnlDiagram.Width - (int)(2 * marginal) + 20,
0);
g.FillPolygon(Brushes.Blue, arrowX);
g.DrawPolygon(Pens.Blue, arrowX);
}
//Tony