Центр двух сфер радиуса R1=20см и R2=80см располагаются в точках пространства, задаваемых с клавиатуры тройками координат. Определить, имеют ли сферы хоть одну общую точку.
ПОМОГИТЕ ПОЖАЛУЙСТА
В ПАЙТОНЕ)))))
PEHDOMМне нужен код в пайтоне
https://mathworld.wolfram.com/Sphere-SphereIntersection.html
PEHDOMНе думаю, что тут нужно уравнение сферы. Задачка школьного уровня про расстояния между точками.
Sphere-SphereIntersection.html
py.user.nextвобще да, и там по ссылке на первой же картинке это досаточно наглядно показано, считаем расстояние меджу центрами, если оно равно или меньше суммы радиусов то имеют.
Задачка школьного уровня про расстояния между точками.
PEHDOMНе, сфера это не шар. Если маленькая сфера находится внутри большой, то они запросто могут не иметь общих точек. И центр сферы точкой сферы не является, если что.
считаем расстояние меджу центрами, если оно равно или меньше суммы радиусов то имеют
py.user.nextну ладно, сфера это поверхность шара, убедил
Не, сфера это не шар.
OceanУ нас в детском саду робототехнику изучают. Английский сейчас тоже бывает с разного возраста, к тому же есть частные школы и дополнительное образование, где английский можно с пяти лет изучать, просто платишь отдельно. Стандартная школьная программа в плане информатики и английского тоже сейчас гибче стала. Раньше начинают, чем у нас было. А у меня в школе было то, что у моего брата старшего вообще не было в школе. Поэтому ко мне привозили видики все его друзья, чтобы я им в 13-15 лет их свадьбы переписывал с кассеты на кассету, ну и порнуху тоже.
Интересно для какого класса эту задачу на Python задают
Ocean
- выполняется 2.3 или 2.4, то ответ ”Да"
>>> def points_distance3d(x1, y1, z1, x2, y2, z2): ... return ((x1 - x2) ** 2 + (y1 - y2) ** 2 + (z1 - z2) ** 2) ** 0.5 ... >>> def spheres_intersect(o1, r1, o2, r2): ... dist = points_distance3d(*o1, *o2) ... return r1 + r2 >= dist >= r2 - r1 ... >>> def f(): ... o1 = tuple(map(float, input('Input x1 y1 z1: ').split())) ... r1 = 20 ... o2 = tuple(map(float, input('Input x2 y2 z2: ').split())) ... r2 = 80 ... spherefmt = '<{} r={}>' ... if spheres_intersect(o1, r1, o2, r2): ... print('Spheres {} and {} intersect'.format( ... spherefmt.format(o1, r1), ... spherefmt.format(o2, r2))) ... else: ... print('Spheres {} and {} don\'t intersect'.format( ... spherefmt.format(o1, r1), ... spherefmt.format(o2, r2))) ... >>> f() Input x1 y1 z1: 0 0 0 Input x2 y2 z2: 100 0 0 Spheres <(0.0, 0.0, 0.0) r=20> and <(100.0, 0.0, 0.0) r=80> intersect >>> f() Input x1 y1 z1: 0 0 0 Input x2 y2 z2: 101 0 0 Spheres <(0.0, 0.0, 0.0) r=20> and <(101.0, 0.0, 0.0) r=80> don't intersect >>>