Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Мариулам
0 / 0 / 0
Регистрация: 30.09.2011
Сообщений: 37
1

Нарисовать многоугольник

30.09.2011, 01:18. Просмотров 2149. Ответов 2
Метки нет (Все метки)

здравствуйте!

Мне надо построить такой многоугольник, а я наугад чертил линии. помогите пожалуйста построить многоугольник. И еще такое движение: по экрану справа налево с помощью клавиш движения курсора до границ экрана и назад.

Я только это смог сделать:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Uses GraphABC;
var x :integer;
begin
for x:=0 to 10000 do
 
 
 
Begin
LockDrawing;
ClearWindow;
 
 
Circle(x+100,66,57);
MoveTo(x+47,85);
LineTo(x+100,123);
LineTo(x+152,82);
LineTo(x+133,20);
LineTo(x+65,20);
LineTo(x+47,85);
Circle(x+100,66,45);
MoveTo(x+57,80);
LineTo(x+100,110);
LineTo(x+142,78);
LineTo(x+126,30);
LineTo(x+74,30);
LineTo(x+59,83);
Redraw;
Redraw;
Redraw;
end;
End.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2011, 01:18
Ответы с готовыми решениями:

Нарисовать многоугольник с диагоналями
Помогите, пожалуйста. Есть начало кода - построение многоугольника. Не знаю как добавить...

Как нарисовать многоугольник?
Хочу нарисовать многоугольник с некоторыми координатами углов. Как?!

Нарисовать произвольный многоугольник по координатам
Помогите в написании кода программы на паскаль АВС.(желательно чтоб рисовался рисунок) Помогите...

Нарисовать правильный многоугольник, вписанный в окружность
Задание указано на скриншоте. P.S. Само задание для Turbo Pascal, но делал я на ABC uses...

Хочу нарисовать многоугольник с некоторыми координатами углов. Как?! можно и не правильный
Хочу нарисовать многоугольник с некоторыми координатами углов. Как?! можно и неправильный

2
Puporev
Модератор
58571 / 44475 / 30707
Регистрация: 18.05.2008
Сообщений: 106,552
30.09.2011, 09:51 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
uses graphABC,crt;
 
type Tpoint=record //пишем свой тип точка, он вообще-то есть в АВС,
                   //но нужно подключать модуль PointRect
            x,y:integer;
            end;
procedure Pent(x,y,r,a:integer);//рисование правильного 5-угольника
var i:integer;
    p:array[1..6] of Tpoint;
begin
for i:=1 to 5 do
  begin
   p[i].x:=x+round(r*cos(a*pi/180));
   p[i].y:=y-round(r*sin(a*pi/180));
   a:=a+72;
  end;
p[6].x:=p[1].x;
p[6].y:=p[1].y;
circle(x,y,r);
MoveTo(p[1].x,p[1].y);
for i:=1 to 6 do
LineTo(p[i].x,p[i].y);
end;
procedure Figure(x,y,r,a,c:integer); //рисование всей фигуры
var r1:integer;
begin
setpencolor(c);//цвет(черный или белый, или любой и белый)
setbrushstyle(bsClear);
circle(x,y,r);
Pent(x,y,r,a);
r1:=round(r*cos(pi/5)); //уменьшаем радиус
circle(x,y,r1);
Pent(x,y,r1,a);
end;
var r,a,x,y,dx:integer;
    c1,c2:char;
begin
x:=windowwidth div 2;
y:=windowheight div 2;
hidecursor;
r:=50;
textout(x-130,20,'Управление стрелками влево и вправо');
textout(x-100,40,'Esc-завершение программы');
Figure(x,y,r,18,clBlack);//рисуем фигуру на старте
repeat //повторям пока не надоест
if keypressed then //если нажата клавиша
 begin
  c1:=readkey;//первый символ расширенного кода для спец. клавиш
              //иначе и на нажатие K,M будет реагировать
  if c1=#0 then c2:=readkey; //он равен 0, 075, 077
  if (c2=#75)and(x<windowwidth-r) then //вправо и не конец экрана
  //вообще-то 75 это влево, но у меня почему-то вправо,
  // если у Вас наоборот, то поменяйте местами 75 и 77
   begin
    delay(100);//задержка
    Figure(x,y,r,18,clWhite);//стираем фмгуру
    x:=x+10;//10 пикселей вправо
    Figure(x,y,r,18,clBlack);//рисуем
   end;
  if (c2=#77)and(x>r) then //то же влево
   begin
    delay(100);
    Figure(x,y,r,18,clWhite);
    x:=x-10;
    Figure(x,y,r,18,clBlack);
   end;
  if c2=#27 then exit;//завершение
 end;
until c2=#27;
end.
1
Мариулам
0 / 0 / 0
Регистрация: 30.09.2011
Сообщений: 37
30.09.2011, 13:14  [ТС] 3
спасибо
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2011, 13:14

Выпуклый многоугольник.
Добрый вечер. Подскажите, пожалуйста, как математически определить выпуклость многоугольника, если...

Определить, является ли многоугольник выпуклым
Помогите пожалуйста написать программу. Задан набор точек на плоскости с координатами x , y ,...

Создают ли точки плоскости выпуклый многоугольник
Создают ли точки плоскости, координаты которых хранятся в двух массивах, выпуклый многоугольник. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.