![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Помогите нарисовать , такое в дельфи , чтоб в последствии каждое поле я мог заливкой разной залить , то есть стены принтус , пол и тд .
Есть координаты написанные в С# Код:
protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
Pen pen = new Pen(Color.Black);
g.DrawRectangle(pen, 0, 0, 400, 300);
g.FillRectangle(Brushes.White, new Rectangle(0, 0, 400, 300));
#region Стены
Point[] points = {new Point(0, 5), new Point(0, 295), new Point(100, 215), new Point(100, 75)};
g.FillPolygon(wall, points);
Point[] points2 = {new Point(300, 75), new Point(300, 215), new Point(100, 215), new Point(100, 75),
new Point(150, 75), new Point (150, 160), new Point(250, 160), new Point(250, 110),
new Point(150, 110), new Point(150, 75)};
g.FillPolygon(wall, points2);
Point[] points3 = {new Point(300, 215), new Point(350, 255), new Point(350, 85), new Point(400, 55), new Point(400, 5), new Point(300, 75)};
g.FillPolygon(wall, points3);
#endregion
#region Кайма
Point[] points4 = { new Point(0, 0), new Point(0, 5), new Point(100, 75), new Point(100, 70) };
g.FillPolygon(kaima, points4);
Point[] points5 = { new Point(100, 70), new Point(100, 75), new Point(300, 75), new Point(300, 70) };
g.FillPolygon(kaima, points5);
Point[] points6 = { new Point(300, 70), new Point(300, 75), new Point(400, 5), new Point(400, 0) };
g.FillPolygon(kaima, points6);
#endregion
#region Плинтус
Point[] points7 = { new Point(0, 295), new Point(0, 300), new Point(100, 220), new Point(100, 215) };
g.FillPolygon(plintus, points7);
Point[] points8 = { new Point(100, 215), new Point(100, 220), new Point(300, 220), new Point(300, 215) };
g.FillPolygon(plintus, points8);
Point[] points9 = { new Point(300, 220), new Point(300, 215), new Point(350, 255), new Point(350, 260) };
g.FillPolygon(plintus, points9);
#endregion
#region Потолок
Point[] points10 = { new Point(0, 0), new Point(400, 0), new Point(300, 70), new Point(100, 70) };
g.FillPolygon(potolok, points10);
#endregion
#region Пол
Point[] points11 = { new Point(0, 300), new Point(100, 220), new Point(300, 220), new Point(400, 300) };
g.FillPolygon(pol, points11);
#endregion
#region Контуры стен
g.DrawRectangle(pen, new Rectangle(100, 70, 200, 150));
g.DrawLine(pen, 0, 0, 100, 70);
g.DrawLine(pen, 400, 0, 300, 70);
g.DrawLine(pen, 400, 300, 300, 220);
g.DrawLine(pen, 0, 300, 100, 220);
#endregion
#region Контур двери
g.DrawLine(pen, 350, 85, 350, 260);
g.DrawLine(pen, 350, 85, 400, 55);
#endregion
#region Контур окна
g.DrawRectangle(pen, new Rectangle(150, 110, 100, 50));
g.DrawLine(pen, 183, 110, 183, 160);
g.DrawLine(pen, 216, 110, 216, 160);
#endregion
#region Контур каймы
g.DrawLine(pen, 0, 5, 100, 75);
g.DrawLine(pen, 100, 75, 300, 75);
g.DrawLine(pen, 300, 75, 400, 5);
#endregion
#region Контур плинтуса
g.DrawLine(pen, 0, 295, 100, 215);
g.DrawLine(pen, 100, 215, 300, 215);
g.DrawLine(pen, 300, 215, 350, 255);
#endregion
#region Длины
g.DrawString("1.5", new Font("Arial", 8), Brushes.Black, 193, 95);
g.DrawString("1", new Font("Arial", 8), Brushes.Black, 137, 130);
g.DrawString("2", new Font("Arial", 8), Brushes.Black, 337, 145);
g.DrawString("1", new Font("Arial", 8), Brushes.Black, 367, 54);
g.DrawString("5", new Font("Arial", 8), Brushes.Black, 60, 255);
g.DrawString("3", new Font("Arial", 8), Brushes.Black, 193, 200);
g.DrawString("2.5", new Font("Arial", 8), Brushes.Black, 100, 150);Надо такое же но на дельфи может хоть кусочек скажите а я дальше сам ) или спрошу еще че не пойму ![]() Последний раз редактировалось guver, 28.04.2010 в 23:00. |
|
#2
|
|||
|
|||
|
ап
все еще нужен хелп ) |
|
#3
|
||||
|
||||
|
Цитата:
линии рисуются так Код:
MoveTo(10,10); LineTo(100,100); |
|
#4
|
||||
|
||||
|
Ну вот я вам начал, пока не уперся в непонятку:
Код:
procedure TForm1.FormPaint(Sender: TObject);
begin
Canvas.Pen.Color := clBlack;
Canvas.Brush.Color := clWhite;
Canvas.Rectangle(0, 0, 400, 300);
Canvas.Polygon([Point(0, 5),Point(0, 295),Point(100, 215),Point(100, 75)]);
Canvas.Polygon([Point(300, 75),Point(300, 215),Point(100, 215),Point(100, 75),
Point(150, 75),Point (150, 160),Point(250, 160),Point(250, 110),
Point(150, 110),Point(150, 75)]);
Canvas.Polygon([Point(300, 215),Point(350, 255),Point(350, 85),Point(400, 55),
Point(400, 5),Point(300, 75)]);
Canvas.Polygon([Point(0, 0),Point(0, 5),Point(100, 75),Point(100, 70)]);
Canvas.Polygon([Point(100, 70),Point(100, 75),Point(300, 75),Point(300, 70)]);
Canvas.Polygon([Point(300, 70),Point(300, 75),Point(400, 5),Point(400, 0)]);
Canvas.Polygon([Point(0, 295),Point(0, 300),Point(100, 220),Point(100, 215)]);
Canvas.Polygon([Point(100, 215),Point(100, 220),Point(300, 220),Point(300, 215)]);
Canvas.Polygon([Point(300, 220),Point(300, 215),Point(350, 255),Point(350, 260)]);
Canvas.Polygon([Point(0, 0),Point(400, 0),Point(300, 70),Point(100, 70)]);
Canvas.Polygon([Point(0, 300),Point(100, 220),Point(300, 220),Point(400, 300)]);
end;там у вас дальше идет: Цитата:
Последний раз редактировалось Страдалецъ, 29.04.2010 в 11:20. |
|
#5
|
||||
|
||||
|
Да и вместо вашего
Цитата:
Код:
Canvas.MoveTo(0,0); Canvas.LineTo(100, 70); |
|
#6
|
|||
|
|||
|
Я наверное совсем тупой
))) но давайте ссамого начала типа Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end; ......... спасибо за ответы ))) |
|
#7
|
|||
|
|||
|
Нарисовало все норм кроме окна и дверь куть от края внутырь отходит шя буду еще пробывать )
Страдалец спасибо А еще теперь вопрос при нажатии на кнопку чтоб мне выводило палитру и закрашивало каждую отдельную областть ?? ) )![]() |
|
#8
|
|||
|
|||
|
Видать для этого и обознаценны контуры , ведь плинтус стены и тд делятся на разные фигуры а так оди видет может стенку как одну плоскость ? 0_о
)))) |
|
#9
|
|||
|
|||
|
аппп
![]() |
|
#10
|
||||
|
||||
|
В чем затык? Не знаете как раскрасить?
|