Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/27: Рейтинг темы: голосов - 27, средняя оценка - 4.78
1 / 1 / 0
Регистрация: 17.01.2010
Сообщений: 8

Построение графика кардиоиды

17.01.2010, 14:38. Показов 5449. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
ПОМОГИТЕ пожалйста бедному студенту выполнить задание на построение графика кардиоиды:
"X = a*cos(t)*(1+cos(t)),
Y = a*sin(t)*(1+cos(t)), a>0, tЄ[0,2π).
Повторить изображение кривой 4 раза переносом по оси Х на 25 единиц вправо и влево и на 20 единиц вверх и вниз. Осуществить поворот осей координат каждого изображения на π/3, 5π/6, 4π/3, 11π/6 и сжатие по оси Y в 2 раза. Изображения залить редкой штриховкой."
ЗАРАНЕЕ БЛАГОДАРЮ!!!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.01.2010, 14:38
Ответы с готовыми решениями:

Построение графика кардиоиды и розы в полярной системе координат
Нужна помощь в построении графика кардиоиды и полярной розы в Pascal ABC. Вся сложность...

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

Построить изображение кардиоиды
Построить изображение кардиоиды, заданной уравнением в полярных координатах: \rho =a(1+\cos...

4
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
17.01.2010, 16:29
Лучший ответ Сообщение было отмечено как решение

Решение

Вот Ваш график, прошу вопросы по геометрии и стандартным процедурам не задавать, есть учебники.
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
uses crt,graph;
var x0,y0,x,y,a,x1,y1,dx,dy,cv:integer;
    t:real;
procedure Kard(cx,cy,cv:integer;u:real);
var dx,dy,x,y,r:integer;
    t:real;
begin
t:=0;{начальный угол рисования кардиоиды}
{координаты точек без учета поворота осей координат}
dx:=round(a*cos(t)*(1+cos(t)));
dy:=round(a*sin(t)*(1+cos(t))/2);
{с учетом поворота осей на угол u}
x:=cx+round(dx*cos(u)-dy*sin(u));
y:=cy-round(dx*sin(u)+dy*cos(u));
{становимся в первую точку}
moveto(x,y);
while t<=2*pi do{делаем полный оборот}
 begin
  {вычисляем координаты остальных точек}
  dx:=round(a*cos(t)*(1+cos(t)));
  dy:=round(a*sin(t)*(1+cos(t))/2);
  x:=cx+round(dx*cos(u)-dy*sin(u));
  y:=cy-round(dx*sin(u)+dy*cos(u));
  setcolor(cv);{выбираем цвет}
  lineto(x,y);{рисуем линию}
  t:=t+0.001;{наращиваем угол}
 end;
setfillstyle(3,cv);{устанавливаем стиль заполнения фигур
и выбираем точку в центре фигуры для начала заливки}
r:=a div 2;
floodfill(cx+round(r*cos(u)-r*sin(u)),cy-round(r*sin(u)+r*cos(u)),cv);
end;
begin
clrscr;
{назначем размер и цвет фигур, размер можно и меньше и больше,
но это нормальные}
repeat
write('Radius [50..120] a=');
readln(a);
until a in [50..120];
repeat
write('Cvet [1..15] cv=');
readln(cv);
until cv in [1..15];
x:=0;
{переход в графический режим}
initgraph(x,y,'');
{центр экрана}
x0:=getmaxX div 2;
y0:=getmaxY div 2;
{рисуем 4 кардиоиды с заданными параметрами}
Kard(x0+25,y0-20,cv,pi/3);
Kard(x0-25,y0-20,cv,5*pi/6);
Kard(x0-25,y0+20,cv,4*pi/3);
Kard(x0+25,y0+20,cv,11*pi/6);
readln
end.
3
1 / 1 / 0
Регистрация: 17.01.2010
Сообщений: 8
23.01.2010, 15:37  [ТС]
Спасибоочень помогло!!!!!Но я немного изменил программу)))Если интересно могу выложить!!!
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.01.2010, 15:38
SUR, Выкладывайте, на форуме мало примеров построения кривых в полярных координатах, да и вообще мало.
0
1 / 1 / 0
Регистрация: 17.01.2010
Сообщений: 8
23.01.2010, 21:08  [ТС]
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
71
uses crt,graph;
   var x0,y0,x,y,a,dx,dy,cv:integer;
       t:real;
 
 procedure mygraphinit;
 var Dr,Md,Err:integer;
 begin
  Dr:=detect;
  initgraph (Dr,Md,'D:\TP\BGI');
  Err:=graphresult;
   if err<>grok then
    writeln(Grapherrormsg(err))
 end;
 
 procedure Kard (cx,cy,cv:integer;u:real);
       var dx,dy,x,y,r:integer;
           t:real;
       begin
       t:=0;
       dx:=round(a*cos(t)*(1+cos(t)));
       dy:=round(a*sin(t)*(1+cos(t))/2);
       x:=cx+round(dx*cos(u)-dy*sin(u));
       y:=cy-round(dx*sin(u)+dy*cos(u));
 
       moveto(x,y);
       while t<=2*pi do
           begin
           dx:=round(a*cos(t)*(1+cos(t)));
           dy:=round(a*sin(t)*(1+cos(t))/2);
           x:=cx+round(dx*cos(u)-dy*sin(u));
           y:=cy-round(dx*sin(u)+dy*cos(u));
           setcolor(cv);
           lineto(x,y);
           t:=t+0.001;
           end;
           setfillstyle(3,cv);
           r:=a div 2;
           floodfill(cx+round(r*cos(u)-r*sin(u)),cy-round(r*sin(u)+r*cos(u)),cv);
       end;
 BEGIN
 clrscr;
 repeat
 write('radius[50..120] a=');
 readln(a);
 until a in [50..120];
 repeat
 write ('cvet [1..15] cv=');
 readln(cv);
 until cv in [1..15];
 
 mygraphinit;
 
 x0:=getmaxX div 2;
 y0:=getmaxY div 2;
 line(x0,0,x0,getmaxY);
 line(0,y0,getmaxX,y0);
 setcolor(8);
 settextstyle(1,0,2);
 outtextxy(1,1,'KARDIOIDA');
 outtextxy(320,0,'Y');
 outtextxy(600,240,'X');
 
 Kard(x0+100,y0-80,cv,pi/3);
 Kard(x0-100,y0-80,cv,5*pi/7.45);
 Kard(x0-100,y0+80,cv,4*pi/3);
 Kard(x0+100,y0+80,cv,11*pi/6.6);
 
 readln;
closegraph;
 
 END.
Добавлено через 1 минуту
Буду оч рад если моя работа поможет кому-нибудь!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.01.2010, 21:08
Помогаю со студенческими работами здесь

Анимированный график кардиоиды
Мне нужно сделать так что-бы центр кардиоида двигался по контуру правильном шестиугольнику..А потом...

Построение графика функции
Помогите пожалуйста девушке! Не понимаю, как строить график... В книжках как-то очень заумно!...

Построение графика функций y=tg(x) y=ctg(x) y=x*3, y=sqrt(x)
Добрый день,товарищи. помогите пожалуйста решит задачу построение графика функций y=tg(x) y=ctg(x)...

Построение графика.
Построить график указанной функции. (x2+y2-ax)2-L2(x2+y2)=0, a&gt;0, L&gt;0

Построение графика функции
Построить график функции a^2*x^3-y^2=0 Очень надо! Заранее признателен Добавлено через 9...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru