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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2010, 16:53   #1
Toni Milano
Пользователь
 
Регистрация: 09.11.2009
Сообщений: 40
По умолчанию Delphi заливка треугольника графика

известны координаты и цвета вершин выполнить закраску треугольника обеспечив плавный переход цвета причем одна сторона трегольника горизонтальна а вершина находится под ней.

Подскажите.идеи есть?спасибо)
Toni Milano вне форума Ответить с цитированием
Старый 30.09.2010, 17:05   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
var i,j:integer;    col:TColor;
begin
 with Canvas do begin
  MoveTo(Width div 2,Height div 2);
  LineTo((Width div 2)-100,(Height div 2)-100);
  LineTo((Width div 2)+100,(Height div 2)-100);
  LineTo(Width div 2,Height div 2);
  //*************************************************
  for i:=(Height div 2)-1 downto (Height div 2)-100 do begin
    j:=Width div 2;
    while Pixels[j,i]<>pen.Color do begin col:=RGB(100,100,j);    Pixels[j,i]:=col;     inc(j);    end;
    j:=Width div 2;
    while Pixels[j,i]<>pen.Color do begin col:=RGB(100,100,j);    Pixels[j,i]:=col;     dec(j);    end;
  end;
 end;
end;
Этот код я поместил в OnPaint формы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.09.2010, 17:25   #3
Toni Milano
Пользователь
 
Регистрация: 09.11.2009
Сообщений: 40
По умолчанию

можешь пояснить код?
Toni Milano вне форума Ответить с цитированием
Старый 30.09.2010, 21:19   #4
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

поясняю по строчкам:
1. Раздел описаний. i,j от -2147483648 до 2147483647, col - http://www.delphisources.ru/pages/faq/base/tcolor.html
2. операторная скобка начала
3. оператор with используется для простоты обращения к свойствам объектов, если бы его не было, везде пришлось бы писать form1.Canvas.<тут что надо>
4. Moveto - устанавливает указатель канвы в нужный пиксель.
5. Lineto - прочерчивает линию
6...
7. до этого пункта рисуем треугольник
8. Комент от стилета)
9. Цикл FOR используем тогда когда знаем количество повторов цикла downto - наубывание
10. j используем для доступа к разным пикселям
11. While (ПОКА) пиксель с координатами j и i не равен цвету карандаша (pen.Color), переменной col присваиваем цвет (RGB - красный, зеленый, синий) и пикселю с теме же координатами, присваиваем эту переменную inc - икримент (увеличение j на один, чтобы дойти до другого пикселя с координатой уже j+1)
12...
13... аналогично 11 но противоположно.
И весь этот код в операторе WITH, т.е. очень удобно.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 01.10.2010, 18:45   #5
Toni Milano
Пользователь
 
Регистрация: 09.11.2009
Сообщений: 40
По умолчанию

а в дельфах это в image писать?
Toni Milano вне форума Ответить с цитированием
Старый 01.10.2010, 20:25   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Нет. Зачем? Почитай что я написал выше
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.10.2010, 20:39   #7
Toni Milano
Пользователь
 
Регистрация: 09.11.2009
Сообщений: 40
По умолчанию

извини.не могу найти объект onPaint.я знаю что в additional есть image а где onpaint?
Toni Milano вне форума Ответить с цитированием
Старый 01.10.2010, 22:08   #8
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

onPaint-это не объект)
onPaint-это событие)
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 02.10.2010, 11:58   #9
Toni Milano
Пользователь
 
Регистрация: 09.11.2009
Сообщений: 40
По умолчанию

я просто незнаю где прописывать это...я думал в image.что на форме создавать?
Toni Milano вне форума Ответить с цитированием
Старый 02.10.2010, 12:53   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
что на форме создавать?
Открой в Инспекторе Обьектов раздел Events. Найди в списке OnPaint кликни по нему дважды - откроется шаблон кода. Туда и пиши.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите написать программу нахождения углов треугольника на Delphi _Andruha_ Помощь студентам 3 10.11.2010 09:17
3D Графика в Delphi QuadroX Фриланс 4 19.05.2010 19:33
Построение треугольника. Delphi 7 savraska Помощь студентам 0 15.05.2010 15:15
Графика в Delphi novi4ok_Delphi Помощь студентам 3 16.03.2010 19:23
Анимация вращения треугольника в Delphi Sina Помощь студентам 2 15.12.2009 17:08