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

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

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

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


Пионер
**

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

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


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


Профи
****

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

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


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

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


Пионер
**

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

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


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

Сообщение отредактировано: XaMMaX -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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.
Там же есть и пример использования, из которого все становится ясно...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

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

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


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


Гость






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

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


Пионер
**

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

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


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


Пионер
**

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

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


Блин, а чё fillpoly только с массивами работает =( Мне нужно просто fillpoly(4,sx1,sy1,sx2,sy2,sx3,sy3,sx4,sy4);
Это возможно реализовать ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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

 




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