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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 54, средняя оценка - 4.74
serega1785
0 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 22
26.04.2013, 23:29     Найти координаты точек пересечения прямой и окружности #1
Найти координаты точек пересечения прямой y=kx+b и окружности радиуса R с центром в начале координат. В каких координатных четвертях находятся точки пересечения? Если точек пересечения нет или прямая касается окружности, выдать соответствующее сообщение
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2013, 23:29     Найти координаты точек пересечения прямой и окружности
Посмотрите здесь:

C++ Найти количество общих точек окружности и прямой
Точки пересечения окружности и прямой C++
C++ Найти координаты точек пересечения двух кругов
Найти координаты точек пересечения окружности с экспонентой и сформировать из них множество А C++
C++ Найти координаты точек пересечения параболы и экспоненты
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
27.04.2013, 04:28     Найти координаты точек пересечения прямой и окружности #2
Алгоритм:
Миниатюры
Найти координаты точек пересечения прямой и окружности  
Ternsip
 Аватар для 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 точка пересечения
serega1785
0 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 22
27.04.2013, 15:01  [ТС]     Найти координаты точек пересечения прямой и окружности #4
я просил на языке программирования а не в решении на листочке((( напишите плиз на языке с++ я просто 0)))
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
27.04.2013, 15:52     Найти координаты точек пересечения прямой и окружности #5
serega1785, Прочитайте, для начала, что вам написали, там и код есть и разжевали всё в подробностях.
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),                                                                             
    ]
Yandex
Объявления
06.03.2016, 21:23     Найти координаты точек пересечения прямой и окружности
Ответ Создать тему
Опции темы

Текущее время: 04:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru