Помощь - Поиск - Пользователи - Календарь
Полная версия: Найти длину отрезка. > Геометрия
Образовательный студенческий форум > Другие дисциплины > Геометрия
Ильмир
Здравствуйте.
Перезалил.

Пишу программу.

Программа должна нарисовать два круга. Радиусы известны.
Один круг маленький другой большой они вот должны касаться.
Изображение

Проблема начинается с маленьким кругом. По идеи что бы его нарисовать нужно знать его координаты.

Координатам является центр окружности.

Координаты маленького круга по X найти легко, а вот по Y не как не могу додуматься. Спасибо за внимание.smile.gif
tig81
Что делали?
Ильмир
Цитата(tig81 @ 26.1.2012, 8:59) *

Что делали?

Не понял вас.
tig81
Под "координатами маленького круга" подразумевается координаты его центра?

П.С. Дублировать темы не стоит. Пока устное предупреждение.
Ильмир
tig81 Понял. Больше такого не повториться.

Под "координатами маленького круга" подразумевается координаты его центра?

Именно. smile.gif
Ильмир
tig81

Нашел координаты маленького круга.

x0=-r; y0=sqrt(r*r-R*R-2*R*x0-x0*x0);

формулу y0 можно еще упростить подставив место x0 "-r"

тогда получиться y0=sqrt(2*R*r-R*R)

решал с помощью системы уравнений окружности.
Изображение


R, r , x0=-r известны

x,y, y0 не известны.

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

и взял их точки касания x=-R,y=0 и подставил.

Теперь x,y; типа известны. Вывел формулу и она рабочая. Нашел y0;


теперь мне нужна формула вычисляющая x,y;

так как радиусы произвольные. Значит нет у меня координатов точки касания.

Теоретически можно таким же образом найти x,y. Только тут две не известные координаты и все гораздо сложней. Теперь y0,x0,r,R известны; x,y не известны. 20 раз выводил формулу с нуля. И нет не работает
Dimka
Цитата(Ильмир @ 26.1.2012, 0:45) *


Пишу программу.

Программа должна нарисовать два круга. Радиусы известны.
Один круг маленький другой большой они вот должны касаться.
Изображение


Ничего не понял. Напишите яснее что должна делать Ваша программа.

Почему три рисунка?
Ильмир
Цитата(Dimka @ 28.1.2012, 13:41) *

Ничего не понял. Напишите яснее что должна делать Ваша программа.

Почему три рисунка?




Программа должна рисовать две окружности. Заданны произвольные радиусы. Условие что бы маленькая окружность касалась большого круга и диаметра как показано на рисунке. В рисунке показаны различные варианты радиуса окружностей для более лучшего понимания задачи.


По условию видно что r не может больше чем R/2, иначе не будет касания большой окружности и диаметра как показано на рисунке.

Изображение

Для решения данной задачи нужно найти координаты маленькой окружности. Я вывел чудом формулу.помощью системы уравнений окружности.

Изображение

Координаты большой окружности 0,0. То есть это начало координат. На декартовую систему координат нарисованная в самом низу не обращать внимания. потом легко будет перенести на нижнюю систему координат.

R, r , x0=-r известны

x,y, y0 не известны.


Так как не известны x,y;(координаты точки касания)
я решил взял случай в котором радиус маленькой окружности будет максимальной величины.
То есть r=R/2.
вот как тут. (Рисунок первый)

Изображение

и взял их точки касания. Не трудно заметить что они будет равны x=-R,y=0 и подставил в уравнение.

Теперь x,y; типа известны. Вывел формулу и она оказалось рабочей для любых r<=R/2. Нашел y0;


Теперь координаты маленького круга известны. Они вычисляются по формуле x0=-r; y0=sqrt(2*R*r-R*R) И программа рисует окружности как надоsmile.gif


Следующая поставленная задача состоит в нахождении x,y то есть координаты точки касания окружностей.

Теоретически можно таким же образом найти x,y. Только тут две не известные координаты и все гораздо сложней. Теперь y0,x0,r,R известны; x,y не известны. 20 раз выводил формулу с нуля. И нет не работает
Dimka
Вот.
Радиус большой окружности R и абсцисса точки касания на большой окружности x1 должны быть заданы. Дальше прога вычисляет уравнение малой окружности и строит его.
Ильмир
Dimka

Я очень благодарен за помощьsmile.gif но вы к сожалению не так поняли.


мне известна формула нахождения координаты маленького круга. она равна x0=-r; y0=sqrt(2*R*r-R*R).

Но не известна формула нахождения координаты точки касания окружности.

Так как r и R произвольные. Только когда r=R/2 точка касания будет равна x=-R, y=0, а при других значениях r она будет равна другому значению.
Dimka
Какие величины изначально заданы (или вводятся клавы)?
Ильмир
Цитата(Dimka @ 28.1.2012, 16:21) *

Какие величины изначально заданы (или вводятся клавы)?


r и R вводиться с клавы можно и так сказать.

Большего нечего.
Ильмир
Dimka я могу построить окружности как надо) так как у меня формула нахождения координат маленькой окружности есть.

Мне нужна формула координат касания окружностей. Для того что бы от этой точки нарисовать линию.

Dimka
Цитата(Ильмир @ 28.1.2012, 20:24) *

r и R вводиться с клавы можно и так сказать.

Большего нечего.


Если R и r не связаны, а маленькая окружность должна находится внутри большой и касаться "обода" большой окружности, то точка касания должна быть задана, иначе комп не поймет в каком месте (вверху, внизу, справа, слева) размещать маленькую окружность.
Ильмир
Dimka

координаты маленькой окружности по x0 всегда будет x0=-r

по y0=sqrt(2*R*r-R*R) эту уже точно) Реализовано и работает. если выполняется условие r<=R/2 и это как раз что нам нужно.

Ильмир
Спасибо большое) решение найденоsmile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.