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

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

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

> соединение точек с помощью DrawPoly
Sensitive
сообщение 12.05.2007 0:05
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 132
Пол: Женский
Реальное имя: Юлия

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


Подскажите пожалуйста.
У меня даны координаты точек. Эти точки нужно последовательно соединить с помощью DrawPoly. координат много (приведу в пример несколько):
(7,0), (7,-1), (6.5,-2.5) и т.д.
Эти координаты нужно как-то переводить в пиксели?Я правильно понимаю?Если да,то как это сделать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 13.05.2007 13:27
Сообщение #2


Гость






Так лучше?
uses graph;
const
x:array[1..35] of real=(
7,8,7,5,2,-1,-3,-5,-5,-6,-7,-7.5,-10,-9.5,-7,-5,-5,-4,-4,-5,-4,-3,-3,
-2,-2,1,3.5,5,6,5,6,7,6.5,7,7);
y:array[1..35] of real=(
-3,-2,2,3,3,3,4,6,7,6,6,5.5,5.5,4.5,4,2,0,-2,-5.5,-6.5,-6.5,-5.5,-3,
-2,-1,-1,-0.5,-2,-5.5,-6.5,-6.5,-5.5,-2.5,-1,0);
var
xmin,xmax,ymin,ymax,dx,dy,mx,my:real;
i:byte;
a:array[1..36] of PointType;

var
gd, gm: integer;

begin
initgraph(gd, gm, '');
setcolor(white);
xmin:=-10; xmax:=8; dx:=18;
ymin:=-6.5; ymax:=7; dy:=13.5;
mx:=640/dx; my:=480/dy;

for i:=1 to 35 do begin
x[i]:=(x[i]-xmin)*mx;
y[i]:=getmaxy - (y[i]-ymin)*my; { <--- "Переворачиваем" изображение }
end;

for i:=1 to 35 do begin
a[i].x:=trunc(x[i]); a[i].y:=trunc(y[i]);
end;

a[36] := a[1]; { <--- Чтобы полигон был замкнутым }
drawpoly(36,a);
readln;
CloseGraph;
end.

 К началу страницы 
+ Ответить 
Sensitive
сообщение 13.05.2007 13:37
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 132
Пол: Женский
Реальное имя: Юлия

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


Намного лучше,спасибо!
P.S. "замкнуть" полигон вообще забыла...(
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Sensitive
сообщение 13.05.2007 16:43
Сообщение #4


Пионер
**

Группа: Пользователи
Сообщений: 132
Пол: Женский
Реальное имя: Юлия

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


Не понимаю... Изображение это я получила...(собака)... осталось "сделать" ей лапы...не получается... помогите пожалуйста и объясните если сможете...
вот что у меня получается...
одна лапа:
Procedure leg1;
const x:array [1..6] of real=(5.5,5.5,4.5,3.5,4.5,5);
y:array [1..6] of real=(-4.5,-5.5,-6.5,-6.5,-5.5,-2);
var xmin,xmax,ymin,ymax,dx,dy,mx,my:real;
begin
xmin:=3.5; xmax:=5.5;dx:=2;
ymin:=-6.5; ymax:=-2;dy:=4.5;
mx:=85/dx; my:=160/dy;
for i:=1 to 6 do begin
x[i]:=(x[i]-xmin)*mx;
y[i]:=getmaxy-(y[i]-ymin)*my;
end;
for i:=1 to 6 do begin
b[i].x:=trunc(x[i]);
b[i].y:=trunc(y[i]);
end;
b[7]:=b[1];
drawpoly(7,b);
end;

и вторая:
Procedure leg2;
const x:array[1..6] of real=(-2,-1.5,-2.5,-3.5,-2.5,-3);
y:array[1..6] of real=(-2,-5.5,-6.5,-6.5,-5.5,-3);
var xmin,xmax,ymin,ymax,dx,dy,mx,my:real;
begin
xmin:=-3.5; xmax:=-1.5;dx:=2;
ymin:=-6.5; ymax:=-2;dy:=4.5;
mx:=150/dx; my:=280/dy;
for i:=1 to 6 do begin
x[i]:=(x[i]-xmin)*mx;
y[i]:=getmaxy-(y[i]-ymin)*my;
end;
for i:=1 to 6 do begin
c[i].x:=trunc(x[i]);
c[i].y:=trunc(y[i]);
end;
c[7]:=c[1];
drawpoly(7,c);
end;

на второй ноге вообще не получается...ноги находятся в начале экрана...а мне надо прикрепить их к изображению собаки с помощью DrawPoly...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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