Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 54, средняя оценка - 4.74
serega1785
0 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 22
#1

Найти координаты точек пересечения прямой и окружности - C++

26.04.2013, 23:29. Просмотров 8159. Ответов 5
Метки нет (Все метки)

Найти координаты точек пересечения прямой y=kx+b и окружности радиуса R с центром в начале координат. В каких координатных четвертях находятся точки пересечения? Если точек пересечения нет или прямая касается окружности, выдать соответствующее сообщение
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2013, 23:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти координаты точек пересечения прямой и окружности (C++):

Найти координаты точек пересечения окружности с экспонентой и сформировать из них множество А - C++
С клавиатуры вводится радиус окружности с центром в начале координат. Найти координаты точек пересечения окружности с экспонентой и...

По заданным координатам центра окружности и ее радиусу определить координаты точек пересечения окружности с осями координат. - C++
По заданным координатам центра окружности и ее радиусу определить координаты точек пересечения окружности с осями координат.

Определить, сколько точек пересечения имеют прямая и окружность и найти координаты этих точек - C++
Привет. Тут такое дело. В общем я неплохо знаю сам язык, но вот задачку решить не могу. Т.е не знаю как. С школьной математикой у меня...

Найти координаты точек пересечения - C++
Для заданной окружности и луча в плоскости определить, пересекает ли луч окружность. Найти координаты точек пересечения. На ввод...

Вычислительная геометрия (Даны координаты центра, R окружности, координаты точки вне окруж-ти. Найти точку пересечения одной из касательных с окруж-ю) - C++
Даны координаты центра (xc,yc) и радиус R окружности, координаты точки (x,y) вне окружности. Найти точку пересечения одной из касательных с...

Найти количество общих точек окружности и прямой - C++
Решить задачу в С++ Помогите пожалуйста =) Дана окружность и прямая. Окружность задается уранвением r²=x²+y². Уравнение прямой y=ax+b....

5
IrineK
Заблокирован
27.04.2013, 04:28 #2
Алгоритм:
0
Миниатюры
Найти координаты точек пересечения прямой и окружности  
Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
27.04.2013, 10:13 #3
serega1785, http://e-maxx.ru/algo/circle_line_intersection
вам только нужно переделать из уравнения y = kx + b в общее уравнение прямой и нормализовать его для точности.

Добавлено через 5 минут
y = Kx + B => Ax+By+C = 0
A = K
B = -1
C = B
Нормализовать, значит :
m = sqrt(A*A + B*B);
C /= m;
B /= m;
A /= m;
Прямая коснётся окружности, тогда и только тогда когда есть ровно 1 точка пересечения
0
serega1785
0 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 22
27.04.2013, 15:01  [ТС] #4
я просил на языке программирования а не в решении на листочке((( напишите плиз на языке с++ я просто 0)))
0
Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
27.04.2013, 15:52 #5
serega1785, Прочитайте, для начала, что вам написали, там и код есть и разжевали всё в подробностях.
0
Ivan lupa
0 / 0 / 0
Регистрация: 06.03.2016
Сообщений: 1
06.03.2016, 21:23 #6
Python
K и B - коэфициенты в уравнении прямой y=Kx+B
center - координаты центра
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
def line_cirle_itersection(center, radius, K, B):                                                   
    a = 1 + K**2                                                                                    
    b = -2*center[0] + 2*K*B -2*K*center[1]                                                         
    c = -radius**2 + (B-center[1])**2 + center[0]**2                                                
    D = b**2 - 4*a*c                                                                                
    if D < 0:                                                                                       
        return []                                                                                   
    x1 = (-b-math.sqrt(D))/(2*a)                                                                    
    x2 = (-b+math.sqrt(D))/(2*a)                                                                    
    return [                                                                                        
        (x1, K*x1 + B),                                                                             
        (x2, K*x2 + B),                                                                             
    ]
0
06.03.2016, 21:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2016, 21:23
Привет! Вот еще темы с ответами:

Найти количество и координаты точек пересечения 2-х эллипсов - C++
Нужно найти точки пересечения 2-х эллипсов заданных уравнениями вида: (x-x1)2/a12+(y-y1)2/b12=1 (x-x2)2/a22+(y-y2)2/b22=1 нужно...

Найти координаты точек пересечения двух кругов - C++
Помогите, пожалуйста, решить такую задачу, очень нужен код ... С клавиатуры вводятся радиусы и координаты центров двух кругов. Найти...

Найти координаты точек пересечения параболы и экспоненты - C++
Есть два задания, которые так и не смог осилить (с остальными справился) Очень нужна помощь. 1 . С клавиатуры пользователь вводит...

Нахождение пересечения прямой и окружности - C++
Входные данные (х1,х2,у1,у2,х0,у0,R) считываются с файлы. Не могу понять, как сделать через уравнение прямой, проходящей через 2 точки (для...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru