Войти
ПрограммированиеФорум2D графика и изометрия

Нужна помощь с поворотами векторов (2 стр)

Страницы: 1 2 3 Следующая »
#15
12:18, 21 мая 2020

Вот во что превратилась мысль 3dhater
Мысль рисование окружности включает в себя след. возможности:
- делать сколько угодно частей круга(1/2, 1/4, полный круг и т.д. как позволяют радианы)
- создавать сколько угодно сегментов окружности
- есть доступ к каждому из созданных сегментов
- есть доступ ко всем координатам точек окружности(начало и конец)
Я думаю уже можно не продолжать.

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры


#16
(Правка: 12:32) 12:23, 21 мая 2020

FordPerfect
> float vecX = left_vec[0] * Cosine(g_fRotateAngle) - left_vec[0] *
> Sine(g_fRotateAngle);
> float vecY = left_vec[1] * Cosine(g_fRotateAngle) + left_vec[1] *
> Sine(g_fRotateAngle);
> Это же эквивалентно
> float vecX = left_vec[0] * (Cosine(g_fRotateAngle) - Sine(g_fRotateAngle));
> float vecY = left_vec[1] * (Cosine(g_fRotateAngle) + Sine(g_fRotateAngle));

К сожалению я так и не понял работу этого кода.
Но если ты имеешь в виду то, что код не рабочий - рабочий точно, но как я уже писал, поворачивает ровно на 1/4 (90 град.) окружности. Если у тебя есть какие либо мысли - поделись. Я буду пока использовать код рисования окружности, но понять работу кода поворота я точно не откажусь.

#17
(Правка: 14:44) 14:43, 21 мая 2020

tonline_kms65
> Если у тебя есть какие либо мысли - поделись.

Само определение функций косинуса и синуса состоит в том, что это X и Y (соответственно) координаты точки на единичной окружности для данного угла.
То есть:
Изображение

Таким образом в X координату пихаешь косинус, в Y - синус и умножаешь их на один и тот же коэффициент для масштабирования.
Получаешь точку повёрнутую относительно базовой вокруг центра координат. Вот это будет поворот как на картинке выше.
А когда в одну координату пихается и синус и косинус - это уже что-то другое.

#18
16:56, 21 мая 2020

tonline_kms65
>К сожалению я так и не понял работу этого кода.
Прочитай про линейную алгебру.

#19
(Правка: 20:08) 20:04, 21 мая 2020

tonline_kms65
> Если попробовать нормализовать(отсечь до 360град.)?
> Язык SourcePawn.
У  вас типа один тик и одна секунда и это 720градусов два круга
предложение было поделить это на два чтоб было 360градусов один круг
делим на два =это будет типа половина тика за одну секунду. если дробное нельзя то соответственно сделать тогда один тик за две секунды. масштаб 2:1
  просто эти термины тики и подобные запутывают. все это используют но наверно не понимают суть явления.
что такое тик?суть явления.
  короче смысл такой если два круга это 720градусов а надо иметь один круг 360град то значит надо масштаб два раза или сократить тики/секунда или период времени умножить на два.
типа имеешь два круга 720град за одну секунду=сделаем два круга 720град за две секунды,это будет за одну секунду один круг 360градусов и вроде именно это и надо.
это тут получается если программировал круг углы радианы градусы поворот объекта то теперь другой метод=программировать таймер а повороты объекта оставить как оно сейчас.
tonline_kms65
> CreateTimer(1.0, MovingRotate, ent, TIMER_REPEAT | TIMER_FLAG_NO_MAPCHANGE); //
> повторяющийся таймер(1 тик в секунду)
> //-----------------------------------------------------------
> public Action MovingRotate(Handle: timer, any: ent)
две первые строки кода=тут типа программирование таймера.
в этом месте попробуй таймер отсчет секунды масштаб 2:1 повторяющийся таймер(0.5 тиков в секунду) или время 2х один тик за две секунды.

#20
(Правка: 0:41) 0:37, 22 мая 2020

=A=L=X=
> Таким образом в X координату пихаешь косинус, в Y - синус и умножаешь их на
> один и тот же коэффициент для масштабирования.
> Получаешь точку повёрнутую относительно базовой вокруг центра координат. Вот
> это будет поворот как на картинке выше.

"X координату пихаешь косинус, в Y - синус" - синус и косинус угла(в радианах) это угол поворота.
"один и тот же коэффициент" - это будет радиус поворота.
Если я правильно понял. Сейчас поэксперементирую, уже становится более-менее понятно.

P/S Картинка не получилась.

#21
2:49, 22 мая 2020

tonline_kms65
> Если я правильно понял.
потому что икс это поворот по горизонтали а игрек это поворот по вертикали обычные оси ХУ
ты же персонаж гейма делаешь поворот вокруг совсем другой оси Z.

потому
tonline_kms65
> P/S Картинка не получилась.

эти товарищи которые в учителя лезут=им самим еще учиться и учиться а не списывать уроки
товарищ Alx попутал формулу круга X=r*cosinus, Y=r*sinus, r^2=x^2+y^2.
но смотришь ты от конца вектора зэт на плоскость икс-игрек сверху вниз.а это векторное произведение векторов.

#22
(Правка: 11:50) 11:28, 22 мая 2020

Визуальная трассировка с определением дистанции столкновений.
На конце трассировки(где есть что либо твердое) я сделал искры и дым.
Кол-во лучей(трассировок) можно делать какое угодно, угол обзора(угол зрения) так же любой.
Прикольная тема. Я прямо в ажиотаже.
Это что-то наподобие зрения у объекта, уже не будет тыкаться носом, как кутенок, в стены и прочее. Движение объекта будет идти по самой длинной линии(т.е. там где наибольшая, видимая, дистанция).
Это все функция рисования окружности! 
С функцией поворота я пока так и не разобрался, просто, пока, даже и некогда. Но займусь обязательно, уже с учетом знаний из рисования окружности.

Estimation of the distance | Нужна помощь с поворотами векторов
#23
(Правка: 11:51) 11:32, 22 мая 2020

Rikk
Пускай пишут - люди же предлагают идеи, я могу и должен сам решать что годно а что нет.
А иначе в чем прикол программирования. В споре рождается истинна.
Что бы не было как на форумах SourcePawn, у кого нибудь оттопырить готовый, рабочий код(своровать), поменять названия и переменные и выдав за своё продать. Во как. До этого скатились уже.

#24
14:44, 22 мая 2020

tonline_kms65
> В споре рождается истинна.
Бредни которые кто-то протолкал в массу а масса это хавает.
может это специально типа отворачивать конкурентов=вдруг конкурент выдавит из дела.

Вы поймёте такой пример.
Энштейн постановил теория относительности=одна для всех истина.
умнейшие (общество ученые,академики и тд..)=признали оно для всех единое истина.
Одна правда всем.

Школа=с этим вот списать урок, папа заплатил за тройку=споры очень жаркие.за троечку на экзамене.
но истина правда=теория относительности=одна правда для всех.

истина устанавливается раз и навсегда. истина одна единая штука для всех.
неясно чего там рождается в спорах=но эта фраза= в споре рождается истина=это искуственный бред протолкнутый в массу.

tonline_kms65
> SourcePawn
хз чего за язык
но типа тут в теме обсуждается по формулам круга=поворот по осям горизонталь вертикаль ху
перс в гейме вращается вокруг третьей оси вертикальной высоты=ось зэт.
или эти тики=по коду выходит два круга за один тик=а надо один круг за тик=значит надо чего то там (кусок кода отвечающий за поворот-круг) поделить на два чтоб получить один круг 360град за один тик.если дробные тики типа 0.5тиков нельзя = тогда надо соответственно растянуть время в два раза=получается запрограммировать таймер.

#25
16:21, 22 мая 2020

tonline_kms65
> float vecX = left_vec[0] * Cosine(g_fRotateAngle) - left_vec[0] *
> Sine(g_fRotateAngle);
> float vecY = left_vec[1] * Cosine(g_fRotateAngle) + left_vec[1] *
> Sine(g_fRotateAngle);

Ну тут явно с индексами продолбался кто-то

#26
(Правка: 17:20) 17:08, 22 мая 2020

Rikk
О! Давай пофилософствуем.
Даже не знаю с чего начать. Начну с основного.
С твоими жизненными установками зачем ты программированием занимаешься? Есть же догмы которые утвердило высшее сообщество умных ученых. Зачем что-то изобретать?
Были догмы о плоской земле на 3 китах, о человеке произошедшем от обезьяны и т.д.
Если бы тот же Ньютон (или ему подобные) принимал бы все такие догмы как именно догмы, мы бы до сих пор как собаки бегали бы по улицам за сучками(хотя в основном оно так и есть, разница - пузырь в кармане).

Я еще раз повторюсь - в споре рождается истина, и только так. Честно сказать пох.. до Ньютона, и всех остальных. Естественно я, как и все остальные, пользуюсь ихними наработками, т.к. ничего другого просто нет, и они меня, пока, вполне устраивают. Но это не значит что все должны резко прекратить изобретать колесо, так как оно уже изобретено.
Я думаю, с такой установкой как у тебя сложно заниматься программированием, а самое главное, у меня относительно тебя возникает вопрос - ты не барыга случайно? Если барыга - все нормально, так и должно быть. Если нет - то странно.

Это как художник, рисовать он будет изобретенной кем-то кисточкой, но вот что рисовать - это одному Богу ведомо. Здесь же - если не повернется по этой координате да и х.. с ней, повернем координатную сетку и т.д. и т.п.

Это я без оскорблений и нападок тебе пишу. Мне реально интересно - почему у тебя так все в жизни? Ты наверно первый, кто меня так заинтересовал.

Насчет твоего предложения - я его прекрасно вижу, просто пока не до этого, но я обязательно к этому вопросу(формула поворота) вернусь. Я уже даже пробовал однажды изменить частоту обновления таймера - да, угол поворота меняется, поэтому, для меня, этот вопрос так махом не решить. И не нравится мне эта зависимость угла поворота от частоты обновления таймера.

#27
(Правка: 17:22) 17:18, 22 мая 2020

1 frag / 2 deaths
> Ну тут явно с индексами продолбался кто-то

Ну возможно продолбался, а дальше то что? Совет, вывод какой-то.
И какие индексы, где они здесь.

#28
(Правка: 17:33) 17:32, 22 мая 2020

tonline_kms65
> Зачем что-то изобретать?
Это ошибка.
вроде тут никто и ничего не изобретает.
местные тут делают стандартное дело на стандартной технологии=обыденное дело.берут стандартный язык и стандартный движок и стандартно обыденно пишут стандартную обыденную программу.
разве тут есть хоть один кто имеет изобретение реальное оформленное авторство-патент?вроде таких нету.
к тому же =это списать по уроку=это конвейер штамповать обычные шаблоны.
чтоб изобретать это надо быть из ряда вон не так как все. списать по уроку=изобретения от этого не наступят.
tonline_kms65
> ты не барыга случайно?
не барыга.

по теме позиция подана 1)уменьшить число кругов за тик=написать программу типа поворот на угол за минуту 2) программировать таймер период времени в нужную сторону.=написать программу типа период времени таймера.

#29
18:39, 22 мая 2020

tonline_kms65
> Ну возможно продолбался, а дальше то что? Совет, вывод какой-то.
> И какие индексы, где они здесь.
Мы не помогаем тем, кто не осилил школьный курс тригонометрии.

Страницы: 1 2 3 Следующая »
ПрограммированиеФорум2D графика и изометрия