IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> закрашивание плоского треугольника, в 3д пространстве
XaMMaX
сообщение 17.09.2006 16:50
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 85
Пол: Мужской
Реальное имя: max

Репутация: -  0  +


Собственно читал много мануалов, но так и не понял =( Я прошу более простое обеснения желательно кусок кода! Задача сама сделать зарисованный треугольник и крутить его(ну с этим я сам справлюсь).
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Malice
сообщение 18.09.2006 9:43
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Если крутить сам сможешь, то закрасите еще проще:
Код
p: array [1..3] of pointtype;
..
p[i].x:=..;
p[i].y:=..;
..
fillPoly(3, p);

Цвет закраски через setfillstyle. Только закраска будет однородной, если надо с оттенками,то придется закраску самому делать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
XaMMaX
сообщение 19.09.2006 18:09
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 85
Пол: Мужской
Реальное имя: max

Репутация: -  0  +


А можно коментарий к коду что такое массив p? И не только код , но и обьянения , но всё равно спасиба =)
Да и что за процедура fillPoly(3, p); ?

Сообщение отредактировано: XaMMaX - 19.09.2006 18:14
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 19.09.2006 18:15
Сообщение #4


Гость






А у тебя что, Help не установлен?

Цитата(TP Help)
FillPoly (procedure) (Graph unit)
Fills a polygon, using the scan converter

Declaration:
procedure FillPoly(NumPoints: Word; var PolyPoints);

Remarks:
PolyPoints is an untyped parameter that contains the coordinates of each intersection in the polygon. NumPoints specifies the number of coordinates in PolyPoints. A coordinate consists of two words, an X and a Y value.

FillPoly calculates all the horizontal intersections, and then fills the polygon using the current fill style and color defined by SetFillStyle or SetFillPattern. The outline of the polygon is drawn in the current line style and color as set by SetLineStyle.
Там же есть и пример использования, из которого все становится ясно...
 К началу страницы 
+ Ответить 
XaMMaX
сообщение 19.09.2006 18:50
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 85
Пол: Мужской
Реальное имя: max

Репутация: -  0  +


А что это может работать только на 3 точки =\ ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 19.09.2006 19:05
Сообщение #6


Гость






Почему же только на 3? Первый параметр задает количество точек...

Только надо быть уверенным, что размер массива с координатами по крайней мере НЕ МЕНЬШЕ чем
2 * SizeOf(Word) * NumPoints
 К началу страницы 
+ Ответить 
XaMMaX
сообщение 19.09.2006 19:09
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 85
Пол: Мужской
Реальное имя: max

Репутация: -  0  +


Спасибо с этой задачей справлюсь теперь =)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
XaMMaX
сообщение 20.09.2006 18:12
Сообщение #8


Пионер
**

Группа: Пользователи
Сообщений: 85
Пол: Мужской
Реальное имя: max

Репутация: -  0  +


Блин, а чё fillpoly только с массивами работает =( Мне нужно просто fillpoly(4,sx1,sy1,sx2,sy2,sx3,sy3,sx4,sy4);
Это возможно реализовать ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Бродяжник
сообщение 21.09.2006 14:39
Сообщение #9


Бывалый
***

Группа: Пользователи
Сообщений: 206
Пол: Мужской

Репутация: -  3  +


Ну, можно, как надстройку...
Код
procedure FillPoly4(x1,y1,x2,y2,x3,y3,x4,y4: word);
var Foo: array[1..4] of pointtype;
begin
  Foo[1].x := x1;
  Foo[1].y := y1;
  ...
  Foo[4].x := x4;
  Foo[4].y := y4;

  FillPoly(4,Foo);
end;

что-то типа того
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 12.08.2025 2:34
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"