Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2008, 20:02   #1
рин
 
Регистрация: 24.05.2008
Сообщений: 4
По умолчанию загвоздка... программа построения треугольника

не получается вывести на форму в PaintBox треугольник, задав вершины
с клавы(edit.text) через Polygon.
Выводит,зараза, одну линию.

procedure TForm1.PaintBox1Paint(Sender: TObject);
var
r,a:integer;
p: array[1..3] of TPoint; // координаты точек
begin
p[1].X := strtoint(ex1.text); // 10
p[1].Y := strtoint(ey1.text);// 10
p[2].X := strtoint(ex2.text);// 60
p[2].Y := strtoint(ey2.text);// 60
p[3].X := strtoint(ex3.text);// 110
p[3].Y := strtoint(ey3.text);// 110
PaintBox1.Canvas.Brush.Color := clGreen;
PaintBox1.Canvas.Polygon(p);
end;
если не трудно, подскажите как решить задачу
рин вне форума Ответить с цитированием
Старый 24.05.2008, 20:09   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

У тебя точки на одной линии.

Последний раз редактировалось puporev; 24.05.2008 в 20:13.
puporev вне форума Ответить с цитированием
Старый 24.05.2008, 20:17   #3
hoza_syl
Форумчанин
 
Аватар для hoza_syl
 
Регистрация: 23.05.2008
Сообщений: 219
По умолчанию

Попробуй вставить после инициализации масива точек такой код:

Код:
PaintBox1.Canvas.Brush.Style:=BsSolid;
Это изменит стиль заливки. (Возможно он есть прозрачный)
The Revolution is Now!
hoza_syl вне форума Ответить с цитированием
Старый 24.05.2008, 20:31   #4
рин
 
Регистрация: 24.05.2008
Сообщений: 4
По умолчанию

неа, точки не на одной линии.
если ввести х2=260,у2=260
он не будет рисовать , а лишь продлит линию.
рин вне форума Ответить с цитированием
Старый 24.05.2008, 20:34   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Так 260 и 260 на той же линии. Ты на бумажке нарисуй свои координаты, если в уме считать не умеешь.
puporev вне форума Ответить с цитированием
Старый 24.05.2008, 20:43   #6
hoza_syl
Форумчанин
 
Аватар для hoza_syl
 
Регистрация: 23.05.2008
Сообщений: 219
По умолчанию

Проблема ясна. Как можно вывести треугольник, если все точки лежат на одной линии. Тебе нужно не три едита, а шесть.

Короче: вот те код, разбирайся. У меня работает
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
r,a:integer;
p: array[0..3] of TPoint; // координаты точек
begin
p[0].X := 10; //или inttostr(eidt1.text)
p[0].Y := 10;  //или inttostr(eidt2.text)
p[1].X := 10;  //или inttostr(eidt3.text)
p[1].Y := 60; //или inttostr(eidt4.text)
p[2].X := 110;  //или inttostr(eidt5.text)
p[2].Y := 60;  //или inttostr(eidt6.text)
PaintBox1.Canvas.Brush.Color := clGreen;
paintbox1.Canvas.Polygon(p);
end;
The Revolution is Now!
hoza_syl вне форума Ответить с цитированием
Старый 24.05.2008, 20:43   #7
рин
 
Регистрация: 24.05.2008
Сообщений: 4
По умолчанию

sorry и в правду ,спс
рин вне форума Ответить с цитированием
Старый 24.05.2008, 20:45   #8
рин
 
Регистрация: 24.05.2008
Сообщений: 4
По умолчанию

уже нашел ошибку, но все равно спасибо
рин вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа построения графика KpeHDeJIb Помощь студентам 3 07.07.2008 08:05
ассемблер. Написать функцию, вычисляющую по заданным точкам а,b,c площадь треугольника abс. qimbo Помощь студентам 5 05.01.2008 13:54
Загвоздка с задачей на VBA Versifikator Помощь студентам 3 05.12.2007 22:05
Прога для построения сечений D1_ma Помощь студентам 5 11.09.2007 16:23