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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

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

Регистрация: Sep 1999
Адрес: Екатеринбург
Сообщений: 33
По умолчанию как разместить n кружочков по кругу через n пикселей?

subj. по математике у меня 1, поэтому вот это, например,

function pointOnCircle (x, y, r, t) {
// do maths here
theta=t*math.pi/180;
sinTheta=math.sin(theta);
cosTheta=math.cos(theta);
endX=x+r*cosTheta;
endY=y+r*sinTheta;
}

ничего мне не говорит. можно объяснить? мне надо всего лишь n кругов положить по границе одного большого круга. когда n большое, видимо, радиус круга основного надо делать больше, чтоб всё влезло... но как получить x & y координаты на этом круге через определённое расстояние - не пойму никак совсем, ага! помогите, пожалуйста.
__________________
_____
r e g a r d s


Старый 31.07.2002, 03:37
sevast вне форума Посмотреть профиль Отправить личное сообщение для sevast Посетить домашнюю страницу sevast Найти все сообщения от sevast
  № 2  
sevast
 
Аватар для sevast

Регистрация: Jun 2002
Адрес: СПб
Сообщений: 26
Отправить сообщение для sevast с помощью ICQ
По умолчанию зачем левой пяткой чесать правое ухо?

лучше смести центр кружочка в середину воображаемой окружности, потом сдупликать массив и повращай его.

И ресурсы экономятся, и время.
__________________
do not trouble troubles until troubles trouble you

Старый 31.07.2002, 04:10
jungler вне форума Посмотреть профиль Отправить личное сообщение для jungler Посетить домашнюю страницу jungler Найти все сообщения от jungler
  № 3  
jungler

Регистрация: Sep 1999
Адрес: Екатеринбург
Сообщений: 33
хммм.... собственно, вот это произвело нужный эффект, но почму оно работает понять - выше моих сил. надо было учицца в школе, надо было... j - в цикле for(j=blahblah etc.

angle = j * Math.PI*2/7;
eval("root"+j)._x = Math.sin(angle)*radius + Stage.width/2;
eval("root"+j)._y = Math.cos(angle)*radius + Stage.height/2;

что замечательно, стоит в первой строке написать, например, 4, как расстояние между кругами увеличиваецца. поистине, чудесная наука - математика... или тригонометрия... волшебная. нифига не понятно, а работает. даже стыдно.
__________________
_____
r e g a r d s


Старый 31.07.2002, 04:33
sevast вне форума Посмотреть профиль Отправить личное сообщение для sevast Посетить домашнюю страницу sevast Найти все сообщения от sevast
  № 4  
sevast
 
Аватар для sevast

Регистрация: Jun 2002
Адрес: СПб
Сообщений: 26
Отправить сообщение для sevast с помощью ICQ
По умолчанию ну вот

рассказываешь тут про простоту жизни, а они все крылья к свиньям цепляють...

Знаешь, это уместно использовать в том противном случае, когда точно не знаешь, какая у тебя в радиусе воображаемая окружность.

А ежели все известно, то не стоит так сильно машину этим грузить.

Ну дело твое.

Хороший понт дороже денег. Сам так же мучаюсь.

Потому как надо было мне внимательнее основы тригонометрии в школе проходить.

кхм...
__________________
do not trouble troubles until troubles trouble you

Старый 31.07.2002, 11:50
Go3DoN вне форума Посмотреть профиль Отправить личное сообщение для Go3DoN Посетить домашнюю страницу Go3DoN Найти все сообщения от Go3DoN
  № 5  
Go3DoN

Регистрация: Jun 2002
Сообщений: 131
Отправить сообщение для Go3DoN с помощью ICQ
По умолчанию 2 jungler

А бросьте, пожалуйста хоть примерный исходник использования вашей функции, а то я математику во всех видах(почти, правда) учил, а вот со флешем, вижу, не очень

Старый 01.08.2002, 00:23
jungler вне форума Посмотреть профиль Отправить личное сообщение для jungler Посетить домашнюю страницу jungler Найти все сообщения от jungler
  № 6  
jungler

Регистрация: Sep 1999
Адрес: Екатеринбург
Сообщений: 33
да я вот как раз и не знаю, какой радиус. чем больше кружочков - тем больше радиус )) код вот он: парит xml и рисует на каждый узел по кружочку, так скажем. что-то вроде mind map...

function expandNode(node, parent){
if(parent==null){
createEmptyMovieClip("origin", 1);
origin._x = Stage.width/2;
origin._y = Stage.height/2;
parent=origin;
}

parent.createEmptyMovieClip("_P"+parent._name, 1);//holds all leafs in the current node
var cp = eval(parent+"._P"+parent._name);
trace(parent);
trace(cp);

var total = node.childNodes.length;
var radius = total*10;
for(i=0; i<total; i++){
var n = node.childNodes[i];
var nm = n.nodeName;
var angle = i * Math.PI*2/total;
eval(parent+"._P"+parent._name).attachMovie(nm, "_"+nm+i, i);
var mc = eval(parent+"._P"+parent._name+"._"+nm+i);
mc.message = n.attributes["name"];
mc.node = n;
mc._x = Math.sin(angle)*radius-80;
mc._y = Math.cos(angle)*radius-80;
mc.onRelease = function(){
expandNode(mc.node, mc);
}
}
}

только учтите, код очень сырой - я второй день этим занимаюсь. в общем, если надо подробности phil@land.ru
__________________
_____
r e g a r d s


Старый 01.08.2002, 00:28
jungler вне форума Посмотреть профиль Отправить личное сообщение для jungler Посетить домашнюю страницу jungler Найти все сообщения от jungler
  № 7  
jungler

Регистрация: Sep 1999
Адрес: Екатеринбург
Сообщений: 33
да я лучче файл пришпилю. смотрите, в общем, хочу сделать чтобы было очень просто. чтобы поддержка была максимально простой. и сдаётся мне, что кто-то это делал, но сорцов не найду никак. приходится изучать-с, да ;(
Вложения
Тип файла: zip thedeal.zip (5.6 Кб, 96 просмотров)
__________________
_____
r e g a r d s


Старый 01.08.2002, 13:11
greyshaman вне форума Посмотреть профиль Отправить личное сообщение для greyshaman Найти все сообщения от greyshaman
  № 8  
greyshaman

Регистрация: Aug 2001
Адрес: vg
Сообщений: 352
На. Понятие радиус здесть отсутствует.

rad = Math.PI/180;
n=21;//кружочков
angle=0;
x=50;
y=50;
s._x=s._y=50;
leng=40; // расстояние между кружочками
dangle=360/n;

for(i=1;i<n;i++){
angle+=dangle;
x+=leng*Math.cos(angle*rad);
y+=leng*Math.sin(angle*rad);
s.duplicateMovieClip("s"+i,i,{_x:x,_y:y});
}

Старый 04.08.2002, 00:43
jungler вне форума Посмотреть профиль Отправить личное сообщение для jungler Посетить домашнюю страницу jungler Найти все сообщения от jungler
  № 9  
jungler

Регистрация: Sep 1999
Адрес: Екатеринбург
Сообщений: 33
спасибо хотя дело не в радиусе. после всего прочтённого мной на эту тему за последние Н дней это уже скорее академический вопрос
__________________
_____
r e g a r d s


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

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

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


 


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


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