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

Спираль Архимеда

27.03.2011, 12:55. Показов 10897. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Программирование знаю плохо, поэтому прошу помощи:
Написать программу на Паскале АВС, выводящую график функции ρ = aφ (Спираль Архимеда в полярной системе координат), демонстрирующую, как изменяется расстояние дуги от центра, и направление ветви.
Мне нужно, чтобы я сам вводил значения для переменных, как положительные, так и отрицательные, а программа строила по ним график.
Немного информации:
Архимедова спираль — спираль, плоская кривая, траектория точки M, которая равномерно движется вдоль луча OV с началом в O, в то время как сам луч OV равномерно вращается вокруг O.
Расстояние ρ = OM пропорционально углу поворота φ луча OV. Повороту луча OV на один и тот же угол соответствует одно и то же приращение ρ.
a - смещение точки M по лучу r, при повороте на угол равный одному радиану.
Повороту прямой на 2π соответствует смещение a = |BM| = |MA| = 2kπ. Число a — шаг спирали. Уравнение Архимедовой спирали можно переписать так: ρ = (a/2п)φ.
При вращении луча против часовой стрелки получается правая спираль, при вращении — по часовой стрелке — левая спираль. Положительным значениям φ соответствует правая спираль, отрицательным — левая спираль. Если точка M будет двигаться по прямой UV из отрицательных значений через центр вращения O и далее в положительные значения, вдоль прямой UV, то точка M опишет обе ветви спирали.
Луч OV, проведённый из начальной точки O, пересекает спираль бесконечное число раз — точки B, M, A и так далее. Расстояния между точками B и M, M и A равны шагу спирали a = 2πk. При раскручивании спирали, расстояние от точки O до точки M стремится к бесконечности, при этом шаг спирали остаётся постоянным (конечным), то есть, чем дальше от центра, тем ближе витки спирали, по форме, приближаются к окружности.
Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2011, 12:55
Ответы с готовыми решениями:

Спираль Архимеда в паскале

Спираль Тэрка
Спираль Тэрка Система правил: A 0 2 -1 A A 2 0 0 B B 0 2 1 A B 2 2 1 A Кто может...

Построить гиперболическую спираль
Нужно построить гиперболичскую спираль r=a/t

Графика: построить спираль
Нужна помощь в составлении программы

4
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
27.03.2011, 15:58 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
uses crt,graph;
var gd,gm,xc,yc,x,y,k:integer;
    r,f:real;
begin
clrscr;
repeat
write('k [5..20] k=');readln(k);
until k in [5..20];
gd:=0;
initgraph(gd,gm,'');
xc:=getmaxx div 2;
yc:=getmaxY div 2;
line(0,yc,2*xc,yc);
line(xc,0,xc,2*yc);
f:=0;
while f<=4*pi do//fi>0, правая спираль
 begin
  r:=k*f;
  x:=round(xc+r*cos(f));
  y:=round(yc-r*sin(f));
  putpixel(x,y,14);
  f:=f+0.001;
 end;
{while f>=-4*pi do//fi<0, левая спираль
 begin
  r:=k*f;
  x:=round(xc+r*cos(f));
  y:=round(yc-r*sin(f));
  putpixel(x,y,14);
  f:=f-0.001;
 end;}
readln
end.
0
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 10
27.03.2011, 16:23  [ТС] 3
Позвольте узнать, какой именно Паскаль использован при написании данной программы? У меня в Паскале АВС версии 3.0.1.35 отказывается работать, выдает ошибку, что не найден модуль graph. Как исправить?
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
27.03.2011, 16:28 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
24
25
26
27
28
29
uses crt,graphABC;
var xc,yc,x,y,k:integer;
    r,f:real;
begin
repeat
write('k [5..20] k=');readln(k);
until k in [5..20];
xc:=windowwidth div 2;
yc:=windowheight div 2;
line(0,yc,2*xc,yc);
line(xc,0,xc,2*yc);
f:=0;
while f<=4*pi do//fi>0, правая спираль
 begin
  r:=k*f;
  x:=round(xc+r*cos(f));
  y:=round(yc-r*sin(f));
  putpixel(x,y,14);
  f:=f+0.001;
 end;
{while f>=-4*pi do//fi<0, левая спираль
 begin
  r:=k*f;
  x:=round(xc+r*cos(f));
  y:=round(yc-r*sin(f));
  putpixel(x,y,14);
  f:=f-0.001;
 end;}
end.
1
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 10
27.03.2011, 16:33  [ТС] 5
Премного благодарен! Вы меня выручили. Огромное спасибо =)
0
27.03.2011, 16:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.03.2011, 16:33
Помогаю со студенческими работами здесь

Сделать логарифмическую спираль в паскале

Изобразить на экране вращающуюся спираль

Помогите с графикой АБС(спираль)
Задали сделать спираль графическую чтобы она именно раскручивалась.Я делал которая закручивается,а...

Циклами нарисовать спираль из центра
используя циклы нарисовать следующие фигуры


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

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