Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/25: Рейтинг темы: голосов - 25, средняя оценка - 4.64
194 / 29 / 5
Регистрация: 11.04.2015
Сообщений: 735

Построение кривых второго порядка (окружность, эллипс, парабола, гипербола)

24.11.2015, 20:34. Показов 4931. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
общее задание: нужно построить гиперболу с заданными "параметрами" a и b, а также оси координат, директрисы, фокусные точки; после чего соединить некоторые элементы.
пример готовой "вещи" на картинке ниже. нужно написать код построения этой самой "вещи".
построение особых вопросов не вызвало, а вот с поворотом на угол через матрицу поворота, прям, беда - поворачиваться - поворачиваются, но уезжают, почему-то, в неизвестном направлении.
Пожалуйста, помогите разобраться в причинах такого поведения прямых на графике.

Примечание: использование высокоуровневых команд для аналогичных построений запрещено.

Matlab M
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
t=linspace(-pi/2,pi/2);
a=4.4; b=1.7; x0=-3; y0=-1;
phi=0*(pi/180);        %поворот на любой некоторый угол (здесь - 0, и всё нормально)
R=[cos(phi) -sin(phi); sin(phi) cos(phi)];
XY = R*[a*sinh(t); b*cosh(t)];  %ввод основного уравнения гиперболы в параметрическом виде
del_x = 12; ax_x = R*[-del_x del_x; 0 0];
del_y = 8; ax_y = R*[0 0; -del_y del_y];
line(XY(1,:)+x0, XY(2,:)+y0, 'color','b') %вывод верхеней ветви гиперболы
line(-XY(1,:)+x0, -XY(2,:)+y0, 'color','b') %вывод нижней ветви гиперболы
line(ax_x(1,:)+x0, ax_x(2,:)+y0,'color','k') %вывод осей: x
line(ax_y(1,:)+x0, ax_y(2,:)+y0,'color','k') %          : y
title('\it\bfGiperbola \rm(\ita\rm=4.4, \itb\rm=1.7)')
axis equal
%c=[0 0;-sqrt(a^2+b^2) sqrt(a^2+b^2)];
c=sqrt(a^2+b^2);
e=c./b;
Focuses = R*[0+x0 0+x0;-c+y0 c+y0];
FocusesText = R*[-c c;0.05*c 0.05*c];
Directrices=R*[-8*b 5*b -8*b 5*b;...
             -b./e+y0 -b./e+y0 b./e+y0 b./e+y0] 
         
%директрисы выводятся и поворачиваются правильно, но сдвигаются в неизвестном направлении
     
line(Directrices(1,1:2), Directrices(2,1:2), 'color', 'g', 'LineWidth',2)
line(Directrices(1,3:4), Directrices(2,3:4), 'color', 'g', 'LineWidth',2)
line(Focuses(1,:), Focuses(2,:), 'Marker','o','MarkerEdgeColor','b','MarkerFaceColor','y', 'LineStyle', 'None')  
 
%с фокусами то же самое
Добавлено через 8 минут
график готовой функции - https://yadi.sk/i/_bhQ3LNSkhgcq
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.11.2015, 20:34
Ответы с готовыми решениями:

Построение кривых второго порядка.Гипербола и парабола
Доброго времени суток! Помогите, пожалуйста, построить гиперболу и параболу. Я не могу построить т. к. у нас ещё не было этой темы и нас...

Построение кривой второго порядка. Гипербола
Помогите,кто может срочно!!!Не Получается нормально вывести директрисы, точки на гиперболе и фокусы.То как должно быть показано на фото....

Написать программу для построения графиков кривых второго порядка (гипербола)
Написать программу для построения графиков кривых второго порядка(гипербола). При этом пользователь выбирает,для какой именно функции...

5
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
25.11.2015, 09:31
Ветви и оси Вы сначала поворачиваете, а потом смещаете,
а фокусы и директрисы наоборот
0
194 / 29 / 5
Регистрация: 11.04.2015
Сообщений: 735
27.11.2015, 23:55  [ТС]
ваши слова не лишены смысла, однако у меня так и сделано. и это неправильно. подведя промежуточный итог: проблема решена на 0%
0
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
30.11.2015, 09:36
Matlab M
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
clc
clear all
t=linspace(-pi/2,pi/2);
a=4.4; b=1.7; x0=-3; y0=-1;
phi=20*(pi/180);        %поворот на любой некоторый угол (здесь - 0, и всё нормально)
%R=[cos(phi) -sin(phi); sin(phi) cos(phi)];
R=[cos(phi) sin(phi); -sin(phi) cos(phi)];
XY = R*[a*sinh(t); b*cosh(t)];  %ввод основного уравнения гиперболы в параметрическом виде
del_x = 12; ax_x = R*[-del_x del_x; 0 0];
del_y = 8; ax_y = R*[0 0; -del_y del_y];
line(XY(1,:)+x0, XY(2,:)+y0, 'color','b') %вывод верхеней ветви гиперболы
line(-XY(1,:)+x0, -XY(2,:)+y0, 'color','b') %вывод нижней ветви гиперболы
line(ax_x(1,:)+x0, ax_x(2,:)+y0,'color','k') %вывод осей: x
line(ax_y(1,:)+x0, ax_y(2,:)+y0,'color','k') %          : y
title('\it\bfGiperbola \rm(\ita\rm=4.4, \itb\rm=1.7)')
axis equal
%c=[0 0;-sqrt(a^2+b^2) sqrt(a^2+b^2)];
c=sqrt(a^2+b^2);
e=c./b;
%Focuses = R*[0+x0 0+x0;-c+y0 c+y0]
Focuses = R*[0 0;-c c]+[x0 x0;y0 y0]
FocusesText = R*[-c c;0.05*c 0.05*c];
%Directrices=R*[-8*b 5*b -8*b 5*b;-b./e+y0 -b./e+y0 b./e+y0 b./e+y0] 
Directrices=R*[-del_x del_x -del_x del_x;-b./e -b./e b./e b./e]+[x0 x0 x0 x0;y0 y0 y0 y0]
         
%директрисы выводятся и поворачиваются правильно, но сдвигаются в неизвестном направлении
     
line(Directrices(1,1:2), Directrices(2,1:2), 'color', 'g', 'LineWidth',2)
line(Directrices(1,3:4), Directrices(2,3:4), 'color', 'g', 'LineWidth',2)
line(Focuses(1,:), Focuses(2,:), 'Marker','o','MarkerEdgeColor','b','MarkerFaceColor','y', 'LineStyle', 'None')  
 
%с фокусами то же самое
Тяжело, когда сами не хотят ничего понять и сделать, даже с подсказки
0
30.11.2015, 10:17

Не по теме:

Цитата Сообщение от SSC Посмотреть сообщение
Тяжело, когда сами не хотят ничего понять и сделать, даже с подсказки
Ага, ведь на форуме все сделают за меня:D
Вообще мне не нравится эта практика, что многие тут получают решение заданий университетских не шевельнув ни извилиной. Пусть сами делают, а тут только подсказки будут получать. С другой стороны отупление таких вот студентов не наша проблема. Пусть как хотят так и учатся.

0
194 / 29 / 5
Регистрация: 11.04.2015
Сообщений: 735
01.12.2015, 20:52  [ТС]
кстати, вы зря так говорите. я надеялся, что мне помогут разобраться быстрее, но увы и ах..
всем спасибо, но я разобрался сам. кому интересен итог, могу выложить готовую программу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.12.2015, 20:52
Помогаю со студенческими работами здесь

Эллипс, гипербола и парабола
Необходимо составить уравнение: А) эллипса Б) Параболы в) Гиперболы Дано: 1) E=2/3 A(-6;0) 2) A=2sqrt(5) E= sqrt(1.2) 3)...

Построение кривых второго порядка
Доброго времени суток! Написал программу, но она не выводит не одного значения на график, не пойму в чем проблема, подскажите, может в...

кривая второго порядка(парабола)
пожалуйста помогите решить задание!( Дана парабола 4x^2-8x-y+7=0. Найдите координаты фокуса и уравнение директрисы.

Точки пересечения кривых второго порядка.
Здравствуйте.Подскажите, пожалуйста, формулу нахождения точки пересечения уравнений кривых второго порядка. Не могу решить...

Рисование графиков кривых второго порядка
Вообщем сейчас нужно делать Мат Анализ... интегралы... чтобы увидеть пределы интегрирования, нужно сделать правильный чертеж.. для этого...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru