Огни в форме идеальной пентаграммы
|
|
FatalBlade | Дата: Пятница, 08 Июля 2011, 14:29:39 | Сообщение # 1 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Я слаб в тригонометрии, поэтому разобью мой вопрос на несколько: 1) - Как триггерно создать ИДЕАЛЬНЫЙ круг обьектов/эффектов 2) - Как триггерно создать внутри этого круга идеальную пятиугольную звезду, что бы углы соприкасались с окружностью круга. 3) - Как сделать что бы эффекты воспроизводились по кругу и по линиям звезды, поочереди и по последовательности точек.
Вообщем помощь тут мне нужна в самих формулах, т.е. в мат-части.
|
|
|
|
Dallase | Дата: Пятница, 08 Июля 2011, 14:48:59 | Сообщение # 2 |
10 уровень
Группа: Проверенные
Сообщений: 1501
Награды: 0
Репутация: 583
Блокировки:
| Ты разделом не ошибся?
|
|
|
|
FatalBlade | Дата: Пятница, 08 Июля 2011, 14:55:30 | Сообщение # 3 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Почему? Это ведь относится к ландшафту.
|
|
|
|
Dallase | Дата: Пятница, 08 Июля 2011, 15:02:59 | Сообщение # 4 |
10 уровень
Группа: Проверенные
Сообщений: 1501
Награды: 0
Репутация: 583
Блокировки:
| Quote (FatalBlade) Как триггерно создать Quote (FatalBlade) Как триггерно создать Quote (FatalBlade) эффекты воспроизводились Это о-о-очень далеко от ландшафтинга, дальше этого от ландшафтинга только jass
|
|
|
|
FatalBlade | Дата: Пятница, 08 Июля 2011, 19:35:07 | Сообщение # 5 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Цель всего этого - пентаграмма, т.е. анимированная декорация. Ландшафт. Но ладно, так и быть, я создам тему в разделе Вопросов по картостроению.
|
|
|
|
Dallase | Дата: Пятница, 08 Июля 2011, 21:43:11 | Сообщение # 6 |
10 уровень
Группа: Проверенные
Сообщений: 1501
Награды: 0
Репутация: 583
Блокировки:
| Quote (FatalBlade) Цель всего этого - пентаграмма Ну так тут тебе только скажут как пентаграмму расположить, и где. Точно так же можно сказать, что модели тоже к ландшафтингу относятся, все равно их потом в игру ставить в виде декораций и юнитов
|
|
|
|
FkoFF | Дата: Пятница, 08 Июля 2011, 22:02:58 | Сообщение # 7 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| Quote (Dallase) Это о-о-очень далеко от ландшафтинга, дальше этого от ландшафтинга только jass глупость, то что хочет автор требует как раз только джасса, а вернее пары формул.
вообщем объясняю, надеюсь на то что автор поймет с первого раза.
1) - Polar Projection от точки центра, смещение фиксированное, угол сдвигается циклом. 2) - Polar projection от точки центра, смещение фиксированное, угол сдвигается циклом от 1 до 5 собственно с умножением индекса цикла на 360\5, в от этой точки делаешь через еще одну полярную проекцию поиск точек, смещение по углу предыдущей проекции-90, длинна с -нужного диаметра до +нужного диаметра; собственно радиус * 0.8 \2, в обе стороны (от 0). 3) - через предыдущие два пункта пускаешь по звезде и линиям эффекты.
|
|
|
|
Dallase | Дата: Пятница, 08 Июля 2011, 23:01:29 | Сообщение # 8 |
10 уровень
Группа: Проверенные
Сообщений: 1501
Награды: 0
Репутация: 583
Блокировки:
| Quote (FkoFF) глупость, то что хочет автор требует как раз только джасса, а вернее пары формул Ну суть-то понятна, что он разделом ошибся, и это никак не связано с ландшатингом
|
|
|
|
FatalBlade | Дата: Суббота, 09 Июля 2011, 19:33:54 | Сообщение # 9 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Quote (FkoFF) смещение по углу предыдущей проекции-90 Почему -90? Разве не -72? Или 72.
Quote (FkoFF) собственно радиус * 0.8 \2, в обе стороны (от 0). А разве не Синус угла? И почему \2 ?
А что если просто соеденить циклами все 5 точек, каждая из которых равна Индексу * (360/5), то есть провести через них линии, например в каждой по 15-20 точек?
|
|
|
|
Malfatto | Дата: Понедельник, 11 Июля 2011, 12:39:22 | Сообщение # 10 |
Группа: Модераторы
Сообщений: 3806
Награды: 7
Репутация: 2425
Блокировки:
| тема перенесена
|
|
|
|
DeadJass | Дата: Понедельник, 11 Июля 2011, 13:28:06 | Сообщение # 11 |
7 уровень
Группа: Проверенные
Сообщений: 447
Награды: 0
Репутация: 30
Блокировки:
| FatalBlade, Code local real x=GetWidgetX(UNIT) local real =GetWidgetY(UNIT) local real d=0 local real r=300 loop call DestroyEffect(AddSpecialEffect("ModelName",x+r*Cos(d),y+r*Sin(d))) exitwhen d>=6.283185 set r=d+.174532 endloop
Вот круг. переменная r отвечает за ширину круга тоесть его радиус. ну или диаметр от точки x and y.
^ кликабельно Archers Of The Island v1.8 - на стадии завершения
|
|
|
|
[DUОS] | Дата: Понедельник, 11 Июля 2011, 14:24:50 | Сообщение # 12 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| DeadJass, А не проще ли угол циклом двигать?
|
|
|
|
DeadJass | Дата: Понедельник, 11 Июля 2011, 17:04:52 | Сообщение # 13 |
7 уровень
Группа: Проверенные
Сообщений: 447
Награды: 0
Репутация: 30
Блокировки:
| [DUОS], Нет,мне так нравится)
^ кликабельно Archers Of The Island v1.8 - на стадии завершения
|
|
|
|
Impregnable | Дата: Воскресенье, 17 Июля 2011, 06:19:58 | Сообщение # 14 |
6 уровень
Группа: Проверенные
Сообщений: 231
Награды: 0
Репутация: 92
Блокировки:
| Code globals real pentagram_Cx real pentagram_Cy real pentagram_Cradius real pentagram_Cangle real pentagram_Cangleplus string pentagram_Cmdl
real pentagram_x real pentagram_y real pentagram_Dline real pentagram_angle real pentagram_Dlineplus integer pentagram_step real pentagram_dist string pentagram_mdl
timer pentagram_timer = CreateTimer() endglobals
function Pentagram_NextStep takes nothing returns nothing if pentagram_step < 5 then set pentagram_x = pentagram_x + pentagram_Dline*Cos(pentagram_angle) set pentagram_y = pentagram_y + pentagram_Dline*Sin(pentagram_angle) set pentagram_angle = pentagram_angle - 2.512 else call PauseTimer(pentagram_timer) endif endfunction
function Pentagram_Draw takes nothing returns nothing set pentagram_Cangle = pentagram_Cangle + pentagram_Cangleplus call AddSpecialEffect( pentagram_Cmdl, pentagram_Cx+pentagram_Cradius*Cos(pentagram_Cangle), pentagram_Cy+pentagram_Cradius*Sin(pentagram_Cangle))
set pentagram_dist = pentagram_dist + pentagram_Dlineplus if pentagram_dist >= pentagram_Dline then call AddSpecialEffect( pentagram_mdl, pentagram_x + pentagram_Dline*Cos(pentagram_angle), pentagram_y + pentagram_Dline*Sin(pentagram_angle)) set pentagram_step = pentagram_step + 1 set pentagram_dist = 0. call Pentagram_NextStep() else call AddSpecialEffect( pentagram_mdl, pentagram_x + pentagram_dist*Cos(pentagram_angle), pentagram_y + pentagram_dist*Sin(pentagram_angle)) endif endfunction
function DrawPentagram takes real x, real y, real angle, real radius, string Pmdl, string Cmdl, real time returns nothing set pentagram_Cx = x+radius*Cos(angle) set pentagram_Cy = y+radius*Sin(angle) set pentagram_Cradius = radius set pentagram_Cangle = angle + 3.14159 set pentagram_Cangleplus = 6.28/(time/.05) set pentagram_Cmdl = Cmdl
set pentagram_angle = angle + .314 set pentagram_x = x + 25.*Cos(pentagram_angle) set pentagram_y = y + 25.*Sin(pentagram_angle) set pentagram_Dline = radius/.55 set pentagram_Dlineplus = pentagram_Dline/(time/.25) set pentagram_dist = 0. set pentagram_step = 0 set pentagram_mdl = Pmdl
call TimerStart( pentagram_timer, .05, true, function Pentagram_Draw) endfunction
Вызов через функцию DrawPentagram, где параметры: 1 - X точки (откуда начать рисовать) 2 - Y точки (откуда начать рисовать) 3 - угол (например между кастером и точкой !в радианах!) 4 - радиус окружности 5 - модель эффектов пентаграммы 6 - модель эффектов окружности 7 - время, за которое нарисовать
FatalBlade этот код не законченный! Как и просил только формулы, и то несовсем правильные...
|
|
|
|