Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Распределение объектов по СФЕРЕ (http://www.flasher.ru/forum/showthread.php?t=120457)

3Desian 21.01.2009 11:45

Распределение объектов по СФЕРЕ
 
Всем флэшерам привет. :)
Снова я со своими баранами. :)
Теперь у меня мысль распределять объекты не по кругу,
Код AS1/AS2:

col=10;
rad=100;
for (i=1; i<=col; i++) {
        step=(Math.PI*2)/col;
        this["x"+i]=0+Math.sin(step*i)*rad;
        this["y"+i]=0;
        this["z"+i]=0+Math.cos(step*i)*rad;
        }

чего благодаря участникам форума я уже добился, а по сфере. Т.е. есть уже 3 координаты: X,Y,Z. Опять таки нужна формула для равномерного распределения по СФЕРЕ и вычисление координат. Пытался копировать то же кольцо с уменьшением радиуса и подъёмом по Y, но выходила лажа. :) Кто знает, прошу помощи.

Добавлено через 50 часов 13 минут
Кто нибудь... на помощ, пажаааалста. Нахожу в инэте формулы, но не могу понять как их прикрутить. :wacko:

chugart 24.01.2009 00:17

Тебе нужно перевести изометрическую или какуюнить другую проекцию в двумерное пространство. Точнее написать функцию такого перевода.
Делал такое давным давно на паскале... строил движещиеся трехмерные поверхности.
Зачем сделать самому - чтобы разобратсья в формулах.
Как сделать самому:
1. Выбери какая проекция тебе нужна. Наверняка в школе было черчение и ты знаешь несколько проекций и правила черчения в этих проекциях объектов: Аксонометрическая. Изометрическая. Если нет посмотри в интернете что это такое.
2. Нарисуй набумаге экран компьютера с координатными осями Y X. а внутри них нарисуй оси выбранной проекции. Вспомни как рисовали трехмерные графики на математики оси X Y Z. У тебя получиться трехмерные координаты в двухмерных координатах.
3. Нарисуй в трехмерных координатах точку с координатами x1 y1 z1. У тебя получитсья точка в трехмерном пространстве, но так как твои трехмерные координаты нарисованы в свою очередь в двух мерных координатах, то у твоей точки автоматически появляется еще координаты x2 и y2 на твоем экране. Нанеси их на оси координат экрана. Таким образом твоя точка будет иметь два набора кординат: в двухмерном простанстве и рехмерном пространстве.
4. Самое важное. Построить зависимость x2, y2 от x1, y1, z1. Для того важно знание тригонометрии и правила задания размеров в выбранной проекции. Ты будешь использовать косинусы синусы. Если ты знаешь что это такое. то особых проблем у тебя не будет.
5. Теперь когда у тебя есть функция перевода трехмерных координат в двумерные. Тебе нужно узнать функцию сферы, которая записыватся в следующем виде R^2 = X^2 + Y^2 + Z^2, где R радиус сферы, а '^2' возведение в квадрат. Например выражаешь из формулы координату z и задавая последовательно координаты Y и X с нужным тебе шагом получаешь набор точек сферы X Y Z. С помощью твоей функции переводишь этот набор в набор двумерных координат. Это и будут координаты твоих объектов.
6. Также не забудь что для того чтобы это выглядело действиетльно сферой: объекты расположенные дальше в трехмерном пространстве должны быть меньше. Зависимость размеров ты можешь узнать из свойтсв выраннойпроекции. Чем дальше объект тем меньше, чем ближе тем больше. и объекты находящиеся в переди имеют более выский depth? т.е. перекрывают задние объекты. Зависимость размера и depth можно описать одной из координат трехмерног опространства которая отвечает за располоджение объекта в глубине трехмернооого пространства.
6. Применяешь свое знание рисования во флеше и вперед.

PS: В твоем случае со сферой я бы выбрал не декартову а сферическую систему координат. ЧТо это такое тоже можешь узнать из интернета.
PS: Если тебя напугали слова проекция. тригонометрия, система кординат и т.п. - ты взялся не за ту задачу.

Добавлено через 2 минуты
если совсем туго. приведи здесь найденные формулы.

Флэш свстроенных стредств рисования трехмернойстей не имеет, поэтому нет никакой разницы на каком форуме ты найдешь нужные тебе формулы.

amexdesign 24.01.2009 02:12

Вложений: 1
вот примерчик....

maxi_2704 24.01.2009 03:54

Fatality, на тебя последняя надежда!!

etc 24.01.2009 15:42

Цитата:

Сообщение от maxi_2704 (Сообщение 793235)
Fatality, на тебя последняя надежда!!

Плюс за флуд.

3Desian 26.01.2009 12:08

От очень полезная информация от chugart. За что большое СПАСИБО. У меня куча формул в листинге, из которых я не всё понимаю. Т.е. я знаю как что изменить, зачем та или иная формула и функция, но некоторые кусочки, связанные с математическими формулами, не понятны. У меня есть формула для вычислению X и Z с условием равномерного распределения по окружности, а вот как применить формулу сферы. Тут затупил :) Т.е. нужно ещё вычислить Y. Буду ещё ковыряцо.
Касаемо примера amexdesign, то у меня это уже есть. Мне теперь нужно расставить правильно координаты не по кольцу а по сфере.


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

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