Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2012, 13:11   #1
Shinobig
Пользователь
 
Регистрация: 04.10.2011
Сообщений: 25
По умолчанию уравнение прямой


Цитата:
Разработать программу для построения изображения, приведенного на рисунке 1. Исходные данные (R1, r2) должны быть считаны из выбранного пользователем файла. Определить коэффициенты уравнения касательной к окружностям. Вывести их в диалоге приложения.
в общем так. написать программу я то напишу как нибудь. проблема в том что я дуб дубом в геометрии. помогите пожалуйста. мне нужно составить уравнение прямой/касательной.

y=kx+b это уравнение прямой, правильно я понимаю? k и b есть те коэффициенты, которые мне требуются.

как тут, для этой задачи, составить это уравнение???
как подсказала мне преподователь, надо найти координаты точек касания.
так как треугольники подобны, то угол между радиусом R и осью Оу будет равен k - угловому коэффициенту.
Shinobig вне форума Ответить с цитированием
Старый 12.01.2012, 13:34   #2
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

b - пересечение прямой с осью Y, k = тангенс угла между прямой и осью X
Если немного поразмыслить - необязательно искать координаты, можно работать с подобием треугольников, т.е. если из центров окружностей опустить высоты на касательную, то получится два подобных треугольника, использую нужное соотношение можно найти точку пересечения касательной с осью X. В итоге у меня получилось так:

ox=r1+(r1*r2)/(r1-r2);
sin t = (r1-r2)/r1;
k = тангенс угла t = tg(2*pi/3-arcsin((r1-r2)/r1));
b = k*ox = k*(r1+(r1*r2)/(r1-r2));


Накидал по-быстрому, что есть что
Изображения
Тип файла: jpg b8be9c3d8eff.jpg (18.2 Кб, 132 просмотров)
благодарность - сюда (не забываем писать от кого)

Последний раз редактировалось Zer0; 12.01.2012 в 13:56.
Zer0 вне форума Ответить с цитированием
Старый 12.01.2012, 13:53   #3
Shinobig
Пользователь
 
Регистрация: 04.10.2011
Сообщений: 25
По умолчанию

не могли бы рисунок сделать. хотя бы просто схематично. немножко недопонимаю.
Shinobig вне форума Ответить с цитированием
Старый 12.01.2012, 14:54   #4
Shinobig
Пользователь
 
Регистрация: 04.10.2011
Сообщений: 25
По умолчанию

а как потом саму касательную построить? вроде понял но завис где то...
Shinobig вне форума Ответить с цитированием
Старый 12.01.2012, 15:00   #5
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

Есть значения k и b (формулы выше), если уравнение прямой (y=kx+b)
Просто пробежаться циклом по x и рассчитать соответствующую ему y (если по точкам), но логичнее просто посчитать два значения y (в крайней левой и крайней правой точке) и провести между ними прямую
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 14.01.2012, 19:44   #6
Shinobig
Пользователь
 
Регистрация: 04.10.2011
Сообщений: 25
По умолчанию

может глупость напишу, но все же. касательную можно построить всео лишь по двум точкам. нам надо расчитать координаты Х и подставить их в уравнение, что бы найти координату Y.
1 точка - пересечение касательной с осью Х, по формуле, которую вы привели выше.
2 точка - точка касание с окружность бОльшего радиуса. координата это касательной по оси Х будет равна R1-r2.
Shinobig вне форума Ответить с цитированием
Старый 14.01.2012, 21:12   #7
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

про вторую точку проверить пока не могу, могу только сказать, что координата y будет находиться как
y=корень квадратный(R1 в квадрате - x в квадрате)
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 14.01.2012, 22:09   #8
Shinobig
Пользователь
 
Регистрация: 04.10.2011
Сообщений: 25
По умолчанию

я просто на нескольких примерах заметил, что координата касания по Х, это R1-r2.
просто если строить эту касательную для моей программы это получается оптимальный вариант. мне даны всего 2 радиуса и по ним надо построить касательную и подсчитать ее коэффициенты. координаты точек находить не получается.

Последний раз редактировалось Shinobig; 15.01.2012 в 00:27.
Shinobig вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Координаты прямой. Демик Общие вопросы C/C++ 12 26.05.2011 18:27
Двигать объект по прямой y = kx Dalef Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 04.10.2010 16:11
Поворот прямой Байт Помощь студентам 2 15.02.2010 22:41
Движение обьекта по прямой Wi1D Помощь студентам 1 16.05.2009 21:21
Анимация прямой NecroSlider Помощь студентам 3 23.04.2007 13:31