Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.02.2007, 18:50
baka вне форума Посмотреть профиль Отправить личное сообщение для baka Найти все сообщения от baka
  № 1  
Ответить с цитированием
baka

Регистрация: Nov 2006
Сообщений: 63
По умолчанию точка соприкосновения двух окружностей

имеются 2 шара (тобиш окружности) которые соприкасаются в одной точке, известны координаты их центров - X1 Y1 и X2 Y2 и радиусы R1 R2, как найти координаты точки их спорикосновения?

Вот что я придумал:
Код:
// Расстояния между кругами по Х и У
var dx = (x1 - x2); 
var dy = (y1 - y2);
// Угол
var alpha = Math.atan2(dy, dx); 
var cosalpha = Math.cos(alpha);
var sinalpha = Math.sin(alpha);
//собственно координаты точки соприкосновения
x3 = x2 + cosalpha * R2
y3 = y2 + sinalpha * R2
Работает не во всех положениях шаров относительно друг друга.
Чего тут нехватает?

Старый 26.02.2007, 18:52
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
http://bezier.ru/rus/articles/math/intersections/
Почитай, может поможет.

Старый 26.02.2007, 18:58
techno вне форума Посмотреть профиль Отправить личное сообщение для techno Найти все сообщения от techno
  № 3  
Ответить с цитированием
techno
 
Аватар для techno

Регистрация: Jan 2007
Адрес: nnov
Сообщений: 163
Отправить сообщение для techno с помощью ICQ Отправить сообщение для techno с помощью AIM Отправить сообщение для techno с помощью MSN Отправить сообщение для techno с помощью Yahoo
математика!
Код:
d=r1/r2;
x3=(x1-x2)*d+x2;
y3=(y1-y2)*d+y2;
будет работать на все 100%
(даже когда не соприкосаются)


Последний раз редактировалось techno; 26.02.2007 в 19:01.
Старый 26.02.2007, 19:51
Mr. Fixit вне форума Посмотреть профиль Найти все сообщения от Mr. Fixit
  № 4  
Ответить с цитированием
Mr. Fixit
Banned

Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
2baka:
ты определил R2?
в коде не видно

Старый 27.02.2007, 14:17
CorC вне форума Посмотреть профиль Отправить личное сообщение для CorC Найти все сообщения от CorC
  № 5  
Ответить с цитированием
CorC
 
Аватар для CorC

Регистрация: Jul 2006
Адрес: Земля>Россия>Вологда
Сообщений: 3,056
Отправить сообщение для CorC с помощью ICQ Отправить сообщение для CorC с помощью MSN Отправить сообщение для CorC с помощью Skype™
Цитата:
Сообщение от Mr. Fixit
2baka:
ты определил R2?
в коде не видно
что ж ты тогда еще про x1 x2 y1 y2 не спросил?

в любой книжке по геометрии это написано
__________________
"We Are The Champions My Friends!" Queen

Старый 27.02.2007, 11:37
Cruser вне форума Посмотреть профиль Отправить личное сообщение для Cruser Найти все сообщения от Cruser
  № 6  
Ответить с цитированием
Cruser

Регистрация: Feb 2007
Сообщений: 7
Код:
// Расстояния между кругами по Х и У
var dx = (x1 - x2); 
var dy = (y1 - y2);
// Угол
var alpha = -Math.atan2(dx, dy)/(Math.PI/180)+90;

y3 = y2 - R2 * Math.sin(alpha *(Math.PI/180));
x3 = x2 - R2 * Math.cos(alpha *(Math.PI/180));
А если так?

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:24.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:24.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.