Рейтинг:
1
OriginalGriff
Я совсем не уверен, что вы собираетесь делать с этой последней линией: но поскольку она начинается с правой стороны и идет дальше направо, она вообще не будет видна в остальной части вашего рисунка:
grfx.DrawLine(Pens.Black, Rectangle.Right, Rectangle.Top, Rectangle.Left+Rectangle.Right, Rectangle.Bottom);
Поскольку и левый, и правый будут положительными, left + rigth будет больше, чем только правый (если только левый не равен нулю, и в этом случае это вертикальная линия, которую вы уже нарисовали).
Nadi G.
Я нарисовал диагонали и теперь пытаюсь нарисовать линию, которая проходит через середину прямоугольника.
OriginalGriff
Вертикальная линия посередине будет
X = left + (right - left) / 2, Y = top
к
X = то же самое, Y = дно.
OriginalGriff
Всегда пожалуйста!
Nadi G.
Как провести линию только к центру, а не по всему диаметру?
Мне нужно взять сторону/2 и взять половину линии
извините, что спрашиваю, но мое математическое мышление плохо.
OriginalGriff
Очень трудно понять из вашего описания, что именно вы хотите сделать, а без этого практически невозможно сказать вам.
Так... возьмите карандаш и бумагу и нарисуйте прямоугольник.
Обозначьте горизонтальные линии от L до R и W как длину. (Левая, правая ширина).
Проделайте то же самое с вертикалями: от т до В, Н.
Теперь нарисуйте диагонали и обозначьте центр: это (L + (R - L) / 2, T + (B - T) / 2)
Теперь добавьте линии, которые вы пытаетесь нарисовать, и должно быть очевидно, где они начинаются и заканчиваются!.
Nadi G.
Есть ли способ нарисовать треугольник с помощью метода Polygon, но с помощью Recatngle(.Ширина,.Высота,.X,.Y)?
Nadi G.
Я знаю, что могу нарисовать его с помощью точек [], но я хочу нарисовать его с помощью класса Rectangle, потому что я хочу поместить в него линии
OriginalGriff
Нет, потому что класс Rectangle всегда определяет четырехсторонние объекты. Это часть определения прямоугольника: четыре стороны, не больше и не меньше.
Nadi G.
база.DrawSelf(grfx);
Система.Рисование.PointF[] points = {
новая система.Рисование.PointF(Location.X+Ширина/2, Расположение.Y),
новая система.Рисование.PointF(Location.X+Ширина, Расположение.Y+Высота),
новая система.Рисование.PointF(Location.X, Местоположение.Y+Высота)
};
grfx.FillPolygon(new SolidBrush(Color.Белая точка);
grfx.DrawPolygon(новое перо(цвет.Черный, ширина: 4.0 F), точки);
grfx.DrawLine(ручки.черный прямоугольник.Слева + (Прямоугольник.Справа - Прямоугольник.Слева) / 2, Прямоугольник.Сверху - Прямоугольник.Справа + (Прямоугольник.Слева - Прямоугольник.Справа) / 2, Прямоугольник.Дно);
grfx.DrawLine(ручки.черный прямоугольник.Слева+103 , Прямоугольник.Топ-32 + (Прямоугольник.Внизу - Прямоугольник.Сверху) / 2, Прямоугольник.Правильно , Прямоугольник.Дно);
grfx.DrawLine(ручки.черный прямоугольник.Справа-103, Прямоугольник.Топ - 32 + (Прямоугольник.Внизу - Прямоугольник.Сверху) / 2, Прямоугольник.Слева - Прямоугольник.Дно);
Nadi G.
я нашел способ, но не знаю, как сделать трапецию?
OriginalGriff
Да ладно тебе!
Если вы можете нарисовать треугольник, то трапеция-это только одна дополнительная точка!
points = new PointF[] { new PointF(50, 50), new PointF(200, 200), new PointF(300, 200), new PointF(400, 50) };
grfx.FillPolygon(new SolidBrush(Color.Blue), points);
Nadi G.
Спасибо, что помогли мне!