Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 25.04.2015
Сообщений: 52
1

Изобразить линии случайной длины, соединенные последовательно друг с другом под случайным углом

25.04.2015, 17:51. Показов 1698. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Требуется написать программу, изображающую линии случайной длины, соединенные последовательно друг с другом под случайным углом, кратным 60-и градусам.

До этого выполнил такую же программу, но угол был кратен 90 градусам. Может кто подсказать, как сделать угол кратный 60-и градусам?

Добавлено через 10 минут
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
Uses graphABC;
var N,err,X,Y,i:integer;
    S:string;
begin
writeln('Данная программа рисует линии случайной длинны под углом кратным 90',chr(176));
 
repeat
 writeln('Введите количество линий.');
 readln(s);
 val(s,N,err);
until err=0;
 
 
ClearWindow;
randomize;
X:=random(600);
Y:=random(450);
MoveTo(X,Y);
for i:=1 to N+1 do
 begin
  SetPenColor(RGB(random(350),random(350),random(350)));
  LineTo(X,Y);
   if (random(2)=1) then X:=random(600) else Y:=random(450);
 end;
end.

вот предыдущая версия программы с линиями под углом кратным 90 градусов
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2015, 17:51
Ответы с готовыми решениями:

Массив: Сформировать два массива и вывести последовательно друг под другом
Ребят такой вопрос можно допустим сформировать два массива и при выводе их они располагались друг...

Ввести 3 файла: Fx, Fy и Fz одинаковой длины M. Вывести их друг под другом
Ввести 3 файла ,Fx,Fy и Fz одинаковой длины M . Вывести их друг под другом. Сформировать из этих...

Рисование дополнительной линии под углом к основной линии
Доброго времени суток, всем. Помогите решить вопрос. Есть макрос рисующий линию между двумя...

Можно ли в запросе разместить таблицы последовательно друг за другом?
Имеется таблица 1 и таблица 2 c одинаковым наименованием составом полей. Можно ли в запросе...

3
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
25.04.2015, 19:23 2
Лучший ответ Сообщение было отмечено Student7196 как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Uses graphABC;
var N,err,X,Y,i,k,l:integer;
    S:string;
begin
n:=10;
setwindowsize(600,600);
centerwindow;
randomize;
X:=windowwidth div 2;
Y:=windowheight div 2;
MoveTo(X,Y);
for i:=1 to N+1 do
 begin
  SetPenColor(clRandom);
  k:=1+random(5);
  l:=20+random(100);
  X:=X+round(l*cos(k*pi/3));
  Y:=Y-round(l*sin(k*pi/3));
  LineTo(X,Y);
 end;
end.
1
0 / 0 / 0
Регистрация: 25.04.2015
Сообщений: 52
25.04.2015, 20:57  [ТС] 3
Большое спасибо! Правда, при подключении модуля crt и использовании в цикле readkey для пошагового вывода линий, windows прекращает работу программы... Просто интересно, в чем может быть проблема?
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
25.04.2015, 21:27 4
У меня в Простом АВС все работает
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Uses graphABC,crt;
var N,err,X,Y,i,k,l:integer;
    S:string;
begin
n:=10;
setwindowsize(600,600);
centerwindow;
hidecursor;
randomize;
X:=windowwidth div 2;
Y:=windowheight div 2;
MoveTo(X,Y);
for i:=1 to N+1 do
 begin
  SetPenColor(clRandom);
  k:=1+random(5);
  l:=20+random(100);
  X:=X+round(l*cos(k*pi/3));
  Y:=Y-round(l*sin(k*pi/3));
  LineTo(X,Y);
  readkey;
 end;
end.
Добавлено через 4 минуты
В АВС.net работает так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var N,err,X,Y,i,k,l:integer;
    S:string;
begin
n:=2;
setwindowsize(600,600);
centerwindow;
//hidecursor;
randomize;
X:=windowwidth div 2;
Y:=windowheight div 2;
MoveTo(X,Y);
for i:=1 to N+1 do
 begin
  SetPenColor(clRandom);
  k:=1+random(5);
  l:=20+random(100);
  X:=X+round(l*cos(k*pi/3));
  Y:=Y-round(l*sin(k*pi/3));
  LineTo(X,Y);
  readln;//жмем enter
 end;
end.
1
25.04.2015, 21:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2015, 21:27
Помогаю со студенческими работами здесь

Элементы матрицы последовательно записать друг за другом (по горизонтали) в одномерный массив
Помогите пожалуйста,с Matlab только начинаю знакомиться. Нужно преобразовать двумерный массив в...

Под каким углом пересекаются линии
x^2+y^2=8x и y^2(2-x)=x^3

Изобразить вращение линии произвольной длины по часовой стрелке
5. Написать программу, которая изображает вращение линии произвольной длины по часовой стрелке,...

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru