C# Рисование равносторонних треугольников на сторонах другого равностороннего треугольника
Я пытался нарисовать равносторонний треугольник на сторонах большого треугольника. Первый треугольник рисуется отдельным методом, устанавливающим точки A, B и C. До сих пор я только начинал с двух сторон, я могу найти первые две точки меньших треугольников, но я не могу определить правильную формулу для третьего. Я попробовал обновить свою память о тригонометрии, но я в тупике.
float a =0;
Point p = new Point(pnlDisplay.Width/2 - (pnlDisplay.Width/2) /3, 200);
Triangle t = new Triangle(p, pnlDisplay.Width/3, 0);
drawEqTriangle(e, t);
Point p1 = new Point();
Point p2 = new Point();
Point p3 = new Point();
p1.X = Convert.ToInt32(A.X + t.size/3);
p1.Y = Convert.ToInt32(A.Y);
p2.X = Convert.ToInt32(A.X + (t.size - t.size/3));
p2.Y = Convert.ToInt32(A.Y);
//////////////////////////////
p3.X = Convert.ToInt32((A.X - t.size/3) * Math.Sin(a));
p3.Y = Convert.ToInt32((A.Y - t.size/3) * Math.Cos(a));
drawTriangle(e, p1, p2, p3);
p1.X = Convert.ToInt32((B.X - t.size/3 * Math.Cos(t.angle + Math.PI/3)));
p1.Y = Convert.ToInt32((B.Y + t.size/3 * Math.Sin(t.angle+ Math.PI/3)));
p2.X = Convert.ToInt32((B.X - (t.size - t.size/3) * Math.Cos(t.angle + Math.PI/3)));
p2.Y = Convert.ToInt32((B.Y + (t.size - t.size/3) * Math.Sin(t.angle + Math.PI/3)));
//////////////////////////////
p3.X = Convert.ToInt32((B.X - t.size/3) * Math.Cos(a));
p3.Y = Convert.ToInt32((B.Y - t.size/3) * Math.Tan(a));
drawTriangle(e, p1, p2, p3);
Это может быть вопрос для подраздела математики, но я подумал, что сначала попробую здесь. Мне нужна формула для p3.X и p3.Y
Любая помощь будет принята с благодарностью.
EDIT: изменение «a» для плавания a = Convert.ToSingle (60 * Math.PI/180);
FINAL EDIT: Использование ответа MBO в:
Ваш угол равен 0, это нормально? – Piou
попробуйте с 'float a = 60 * Math.PI/180;' и для точки треугольника 3 замените '-' на' + ':' p3.X = Convert.ToInt32 ((AX + t.size/3) * Math .Sin (a)); 'и' p3.Y = Convert.ToInt32 ((AY + t.size/3) * Math.Cos (a)); 'поскольку изображение {0,0} является верхней левой рукой угол холста. – Piou
@Piou Спасибо, я заберу это – Protium