public static void draw_point1(d3 point, PictureBox p, Graphics g) {//отображение точки на пикчерБоксе point.x = point.X * E1.C[0] + point.Y * E2.C[0] + point.Z * E3.C[0]; point.y = point.X * E1.C[1] + point.Y * E2.C[1] + point.Z * E3.C[1]; g.FillEllipse(Brushes.White, (float)point.x + p.Width / 2, (float)point.y + p.Height / 2, 2, 2); //отличие этого отображения в том, что при вращении это отображение будет вращатся вокруг статичного внешнего базиса }
public static void draw_point(d3 point, PictureBox p, Graphics g) { d3 x = point; x.x = x.X * E1.C[0] + x.Y * E2.C[0] + x.Z * E3.C[0]; x.y = x.X * E1.C[1] + x.Y * E2.C[1] + x.Z * E3.C[1]; g.FillEllipse(Brushes.Black, (float)x.x + p.Width / 2, (float)x.y + p.Height / 2, 2, 2); }
public static void draw_line(d3 point1, d3 point2, PictureBox p, Graphics g) { point1.x = point1.X * E1.C[0] + point1.Y * E2.C[0] + point1.Z * E3.C[0]; point1.y = point1.X * E1.C[1] + point1.Y * E2.C[1] + point1.Z * E3.C[1]; point2.x = point2.X * E1.C[0] + point2.Y * E2.C[0] + point2.Z * E3.C[0]; point2.y = point2.X * E1.C[1] + point2.Y * E2.C[1] + point2.Z * E3.C[1]; g.DrawLine(Pens.Black, (float)point1.x + p.Width / 2, (float)point1.y + p.Height / 2, (float)point2.x + p.Width / 2, (float)point2.y + p.Height / 2); }
public static void draw_line1(d3 point1, d3 point2, PictureBox p, Graphics g) {//отображение прямой на пикчерБоксе point1.x = point1.X * E1.C[0] + point1.Y * E1.C[1] + point1.Z * E1.C[2]; point1.y = point1.X * E2.C[0] + point1.Y * E2.C[1] + point1.Z * E2.C[2]; point2.x = point2.X * E1.C[0] + point2.Y * E1.C[1] + point2.Z * E1.C[2]; point2.y = point2.X * E2.C[0] + point2.Y * E2.C[1] + point2.Z * E2.C[2]; g.DrawLine(Pens.White, (float)point1.x + p.Width / 2, (float)point1.y + p.Height / 2, (float)point2.x + p.Width / 2, (float)point2.y + p.Height / 2); //отличие этого отображения в том, что при вращении это отображение будет вращатся вокруг статичного внешнего базиса }
public static void draw_basis(PictureBox p, Graphics g) { d3 x = new d3(100 * E1[0], 100 * E1[1], 100 * E1[2]); d3 y = new d3(100 * E2[0], 100 * E2[1], 100 * E2[2]); d3 z = new d3(100 * E3[0], 100 * E3[1], 100 * E3[2]); d3 zero = new d3(0, 0, 0); draw_line_color(zero, x, p, g, Color.Red); draw_line_color(zero, y, p, g, Color.Green); draw_line_color(zero, z, p, g, Color.Blue); }
static void draw_line_color(d3 point1, d3 point2, PictureBox p, Graphics g, Color col) { Pen pn = new Pen(col); g.DrawLine(pn, (float)point1.X + p.Width / 2, (float)point1.Y + p.Height / 2, (float)point2.X + p.Width / 2, (float)point2.Y + p.Height / 2); }