Как с помощью математики и знаний геометрии, используя синусы и косинусы, сделать движения точки по параболической дуге и кругу, хочу на C# реализовать и понять логику как оно действует в играх. Есть тут аноны которые могут пояснить или материалы для чайников которые подробно объясняют как все это сделано.
>>161679954 (OP) Конкретнее поясни что тебе нужно? Создать точку, которая будет двигаться по кругу/параболе? Пример покажи, в каких играх ты такое увидел
>>161680293 >Конкретнее поясни что тебе нужно? >Создать точку, которая будет двигаться по кругу/параболе? Используя формулы и знания о тригонометрии заставить точку двигаться по заданной параболической траектории, как например летит снаряд или бросают камень.
>Пример покажи, в каких играх ты такое увидел War thunder когда летит снаряд. KSP планеты движутся по кругу.
Я так понял что используют математические формулы которые както вычисляют координаты по которым должна двигатся точка.
>>161679954 (OP) Матлаб начни юзать, разберёшься за 2 часа, но знаний черпанешь как за курс обучения. И не придётся графики в паинте рисовать. Там уже все готово для этого, просто вкидываешь 2 кучи значений, он по ним строит график, можешь одну кучу вкинуть, а второй кучей обозначить функцию зависящую от первой кучи, пример: x=(1,2,3,4,5) y=(1,2,3,4,5) график(x,y), нарисует график прямой по этим парам точек. Можно x=(1,2,3,4,5) y=-x*x нарисует твою параболу перевернутую, как пуля летит.
>>161679954 (OP) Тебе нужно 2 вещи: Виртуальный итератор можешь использовать thread.sleep() Уравнение движения, которое будет обсчитывать дельты по осям на которые смещается твоё тело. Делаешь цикл в котором отрисовываешь, высчитывает новые координаты, останавливаешься поток на нужное время, go to Draw()
>Уравнение движения, которое будет обсчитывать дельты по осям на которые смещается твоё тело. Я не могу понять как оно так высчитывается то есть саму суть формулы.
>>161681001 Через цикл увеличиваешь "х" понемногу, а "у" уже из формулы вычисляешь. И в каждом цикле выводишь "х" и "у" для прорисовки точки в этой координате
>>161679954 (OP) Если тебе конкретно нужны зависимости от синусов и косинусов, то делаешь замену x=rcos(t) y=rsin(t) x и y подставляешь в исходное уравнение f(x,y)=0, по которому рисуешь график, отсюда находишь r(тоже зависит от t) и рисуешь графики, где х и у зависят от времени t
>>161683746 >>161684025 ебать ты даун. как ты вообще освоил программирование если тебе сложны такие простые концептуальные решения. у меня обратная проблема, я легко увязываю абстракции между собой но не знаю никаких языков в достаточном объеме
>>161684442 потому что долбоеб. проебываю возможности и прокрастинирую. знаю в какой-то степени синтаксис и работу жабы, но для практической ценности еще там как до китая раком
>>161684651 на, понимай если поймешь мне тоже скажи, потому что я быдлокодил это два года назад и после этого забил вообще на программирование, даже не помню как что реализовано >>161684724 > Расскажи как ты пришел к успеху, нормально. стал инженегром на заводе, занимаюсь всякой хуйней, но только не программированием > какая зп да полтиничек где-то капает > можно ли фрилансить на джаве? хз, если когда-то все же перекачусь в эту хуйню то расскажу обязательно всем на дваче
>>161684724 Беги от джавараша как можно дальше, если изучаёшь джаву как первый язык -- неплохо, но стоит только поверхностные знания получить, чтобы в голове выстроилось понимание того, как компьютер сайенс устроен, после этого лучше метнуться на ++, поскольку это даст неимоверный буст(если осилишь) в логике, да и в качестве будущего кода. Начать фрилансить после 20 лвл на жабараше -- из разряда фантастики, около 1.5-2 лет займёт изучение технологий и теории, чтобы ты был в состоянии что-то писать как того требует real world. мимо-анон
>>161685002 > Беги от джавараша как можно дальше двачую этого. уроки там нихуя не увязаны толком между собой. иногда начинают говорить о какой-то совершенно новой хуйне буквально с пустого места так, будто это каждому школьнику известно и вообще очевидно. если и пользоваться этим сервисом, то параллельно с книжками и какими-нибудь еще гайдами.
>>161685002 У меня сегодня задача в принципе вкатиться в ит, сам я по образованию бухгалтер, по профессии начальник сто, 26лвл. Но это все ебаная дыра и днище в моей картофельной республике. Поэтому пытаюсь вкатиться в джаву.
>>161685085 вангую что твоя проблема в том, что окружность это вообще не график какой-то функции. у тебя одному аргументу соответствует в общем случае два значения
>>161685228 >пытаюсь вкатиться в джаву. Вот тут то ты и проиграл. Когда уже рядовой пипл уяснит, что ИТ это не панацея от нищеты, нищета в головах. Если бы у тебя действительно было желание "вкатываться" куда-либо, то ты бы не спрашивал вопросы на двачах, а сам бы искал тонны инфы в интернетиках и книжках. всё тот же мимо-анон
>>161686024 Блять, двач не меняется, я тебе даю дельные советы и пинок под зад, а ты сразу же хочешь письками померяться, чтобы в голове как-то утешить себя. всё тот же мимо-анон
>>161686585 сначала определяешь область значений своей окружности. определяется она как величина радиуса в каждую из сторон относительно центральной точки, просёк? например если у тебя центр лежит в координате 10, а радиус равен 4, то область значений лежит в пределах 6...14. потом ты выводишь из уравнения окружности значение второй координаты, и начинаешь подставлять аргументы из области значений через единицу. уравнению у тебя всегда будет удовлетворять два значений - одно из нижней полуокружности, второе из верхней. можно даже не считать а тупо брать их сразу парой. все это говно добавлять в массив и потом выводить в какой-нибудь юзер интерфейс. в твоем случае это будет тупо текст в консоли, где один знак это "нет точки" а второй - "есть точка"
>>161687349 ты заебал. для самой очевидной реализации ты кормишь своему методу три значения - радиус окружности и две координаты ее центра. потом просто ищешь пары Х и У, которые удовлетворяют уравнению
>>161687645 А что ты хотел если ты запихнул 2 в sin и cos? Это же угол который должен меняться от 0 до 2 пи, а у тебя одно значение в каждой итерации цикла
>>161687806 У тела(точки) координаты x, y. При перерисовке x = x0, y = F(x0). Вид F(x) зависит от желаемой траектории, но это классе в 6 объясняют, я пока только в пятом.
>>161688045 Он тебе какой-то хуйни понаписал, все гораздо проще для окружности. Думаю такой пример поймешь даже ты (псевдокод):
for a = 0...360 x = sin(a) x R y = cos(a) x R
Понимаешь? Окружность это 360 градусов, чтобы получить точку в окружности (относительно центра окружности где X = 0, Y = 0) просто берешь синус этого угла для X и косинус его же для Y. Вот и всё.
>>161688348 Добавлю только одно важное уточнение - в C# sin и cos принемают в качестве аргументов радианы вместо градусов. Соответственно тебе либо нужно перевести градусы в радианы если так будет удобно ( r = a x (PI / 180 ), либо сразу оперировать радианами
>>161679954 (OP) Ну так, представляю чето типа того: фор (икс от нуля до такого-то значения) { у = формула функции; рисовать.точечку в координатах (х,у) }
>MatanProject Как же я проигрываю. Тебе выше сказали уже, что уравнение окружности нужно задавать в параметрическом виде и затем итерировать с небольшим шагом (= углом).
Нет блять, давай будем слушать каких-то долбаебов и рисовать в консоли какие-то звездочки блять, я ебал просто.
А вообще, с такими знаниями тебе нужно открывать школьные учебники и хуярить задачи. Прорешаешь Ткачука+Сканави - тогда приходи что-то спрашивать, сын говна.
>>161688045 попонятнее: берешь уравнение окружности (Х-Хо)^2 + (Y-Yо)^2 = R^2 (где Хо и Уо это координаты центра, а R это радиус) и раскладываешь ее по школьным формулам, убирая все скобки. начинай, когда напишешь результат, скажу что дальше для даунов: (а+б)^2 = а^2+2aб+б^2
>>161688914 Так и должно быть, я же тебе написал: >>161688348 >относительно центра окружности где X = 0, Y = 0 Естественно левая и верхняя часть будут иметь отрицательные значения. Собственно sin и cos возвращают значения в диапазоне от -1 до 1, ты их просто умножаешь на желаемый радиус.
Если не хочешь отрицательные значения, то плюсуй к x и y еще значение R.
>>161689426 >>161688348 Из вашего петушиного псевдокода ему нихуя не ясно, что одной из координат надо жестко задаваться, выводя вторую. Вот он и не понимает нихуя.
Получилось, но я так понял что это не оптимизированный вариант, что по этой >>161681520 формуле как то по оптимальней будет но я не могу понять как именно сделать
>>161690123 этот вариант как раз оптимизированный. а через уравнение окружности надо будет заниматься хуиткой типа решения квадратного уравнения. и вообще что такое оптимально? у тебя что так что так получается массив точек в декартовом пространстве.
>>161689426 >А вообще, с такими знаниями тебе нужно открывать школьные учебники и хуярить задачи. Я открывал там одна непонятная хуета. Вот https://www.youtube.com/watch?v=hwpWTkdh-BA чуть ли не единственный человек на ютубе который объясняет человеческим языком.
>>161679954 (OP) Оп, ты долбаеб. В тех случаях что ты описал эти траектории получаются из интегрирования уравнений движения. Гугли метод рунге кутты ну или метод эйлера если ты хуй.
>>161690263 > маняпрограммист делает вид что дохуя в теме > но считает интерфейс между принципиальной реализацией вычислений и его обоссаными свиными глазками чем-то значимым
>>161690201 >надо будет заниматься хуиткой типа решения квадратного уравнения Не надо. С одной стороны вычисляется синус и косинус, с другой - корень и квадрат, но вдвое меньше итераций. Я не могу сказать так сразу, что эффективнее, но скорее всего последний вариант. Ну и еще зависит от области применения. Если ты задаешь, например, какой-нибудь меш для сферы, то в параметрическом виде это делается удобнее, так как точки идут подряд друг за другом. А если нужно отрисовать просто точки, то удобнее первый.
>>161690371 >интерфейс между принципиальной реализацией вычислений и его обоссаными свиными глазками Что? Тебя из психушки выпустили? Там на пикче ОПа говнокод, который не только теоретически неоптимальный, но и в котором 9/10 вычислений уходят просто в никуда.
>>161690410 просто увеличь радиус окружности и сделай больше поле для ее отрисовки. тогда получатся все 360 точек. этот метод сосет по той причине, что при любом раскладе нужно вычислять необходимое приращение угла в зависимости от размеров окружности и размеров условного пикселя графического поля. чем больше окружность и меньше точки, тем с меньшей дискретностью должен угол задаваться. а вот если б ты допер до того как сделаь через уравнение окружности то это все было бы похуй, там бы строилась каждая точка >Что понятного почитать по теме чтобы так же разбиратся в синусах косинусах? тебе не в синусах и в косинусах надо разбираться. такое ощущение что у тебя просто слегка слабовато с абстрактным представлением вещей. хотя в любом случае - математику и задрачивай. она все суть взаино-непротиворечивая увязка всякой абстрактной хуиты
>>161690410 Что там читать? Все что тебе надо знать, это что sin и cos это функции возвращающие значения от -1 до 1 в зависимости от значения передаваемого угла, при этом функции отличаются только по фазе (sin(0)=0, cos(0)=1, sin(PI/2)=1, cos(PI/2)=0). Всё.
>>161690693 >Охуеть а где твой код маня. Не понял вопроса. Ты намекаешь на то, что кто-то не может и такой код написать? Если так, то я очень сомневаюсь в этом. Потому что такой хеллоуворлд сможет написать любой даун.
>>161690765 >мимо-10-лет-в-геймдеве-срать-хотел-на-теорию Ты бы называл вещи своими именами. Не 10 лет в геймдеве, а 10 лет в геймдеве на позиции говнокодера, перетаскивающего хуйню в конструкторах. А то кто-то и правда может подумать, что твоё мнение экспертно.
>>161690633 Ты че там делаешь наркоман? Я тебе сказал интегрируй численными методами. Задай координату точки и начальный вектор скорости, потом напиши функцию потенциала какую тебе надо (центральное поле например, там твои кружки элипсы гиперболы и иногда параболы будут) и вот тебе физон прям как в игорях.
>>161690436 надо. я же там выше вбрасывал реализацию через уравнение окружности, там если присмотреться то тупо решается неполное квадратное уравнение, с дискриминантом и всей хуйней. Количество итераций в случае с уравнением окружности будет равно диаметру окружности, причем сразу можно получать две точки. Для параметрического представления тоже кстати достаточно вычислять только от ноля до 180, а вторую половину тупо отражать. В итоге теоритически число итераций можно сделать равным, но в первом случае количество итераций получается оптимальным естественным путем, а во втором к оптимальному можно только приблизиться, вводя всякие ебанутые коэффициенты на градус приращения через R и дискретность поля.
>>161690827 Вообще похуй на каком движке делать, делал на разных, а в молодости даже свой пилил на Delphi. В последний год использую только OpenFL т.к. в основном занимаюсь кросплатформенными 2d играми.
>>161690913 >Ты бы называл вещи своими именами. Не 10 лет в геймдеве, а 10 лет в геймдеве на позиции говнокодера, перетаскивающего хуйню в конструкторах. >А то кто-то и правда может подумать, что твоё мнение экспертно. Твои глубочайшие познания в математике и программировании уже лет 15-20 как нахуй никому не нужны в геймдеве т.к. они никак не помогут сделать играбельную и продаваемую игру. Гораздо важнее навыки геймдизайнера.
>>161690633 решение хуевое. не смещение надо сделать, а масштабирование, чтоб круг был кругом, а не эллипсом решение совершенно очевидное ебанарот, че тупишь. спойлер: умножь х на K, к при этом должно быть равно отношению высоты ячейки к ее ширине
>>161691161 >познания в математике и программировании уже лет 15-20 как нахуй никому не нужны Ты идиот? Одно дело делать игры, а другое - заниматься самой компьютерной графикой. Быть разработчиком движка/рендрера или просто игры с каким-нибудь процедурным моделирвоанием - это означает быть сверхчеловеком. Быть разработчиком посредственной 2д хуйни на готовом движке - это означает быть червем-пидором. Поэтому я тебе и сказал, чтобы ты не пиздел тут, а писал по делу. Не нужно ему там знать нихуя, пиздец.
>Гораздо важнее навыки геймдизайнера. Ага, примерно как кассира в макдаке.
>>161691646 >Ага, примерно как кассира в макдаке. Ебать ты дебил же совсем. Чтобы сделать Игру нужен геймдизайнер. Твое программирование и математика лишь инструменты для воплощения его идей. И часто для создания Игры, в которую люди захотят играть и которую будут покупать, не нужно никакого ебучего матана, процедурного моделирования (лол) и разрабатывать очередной движок/рендер. Хоспаде, да даже в ААА тайтлах этой хуйни не надо уже давно. Берешь UE, да даже школоUnity и делаешь самое главное, т.к. вся требуха уже написана давно.
>>161691857 блять, ебаный ты балбес. ты прежде чем делать, ДУМАЙ сука над алгоритмом работы того что тебе предлагают. растяжение по любой из осей это тупо домножение готовой координаты на коэффициент масштабирования resultX домножь блять на 1,5 примерно
>>161692040 так а хули ты тогда тут пиздишь что внутренности движка нахуй никому уже лет 15-20 не нужны? ты сейчас выглядишь как безмозглая пилотка, которая ездит на своем форде-фокусе от ТО до ТО и при этом думает что инженеры которые проектируют и совершенствуют ее повозку - нахуй не нужны. так вот, этот тред о том как нарисовать окружность, а не решить как она будет выглядеть красивее - нарисованная звездочками или крестиками
>>161679954 (OP) >как оно действует в играх. /main loop/ while (go == 1) { / Get the input / getInput();
/ Update the player's position / doPlayer();
/ Update the entities / doEntities();
/ Draw everything / draw();
/ Sleep briefly to stop sucking up all the CPU time / delay(frameLimit); frameLimit = SDL_GetTicks() + 16; }; Примерно так, оп. Делается главный цикл, в него всякие твои функции и спрайты там, по какуму хочешь закону. Обычно чтобы подвинуть объект, нужно делать object.x = object.x + 1; Ну выше там пояснили уже как именно происходит движение точки по кругу и пораболе. >>161691161 >важнее навыки геймдизайнера Удвою этого матерого. Хотя дизайном и программированием занимаются разные люди.
>>161692461 Ты конечно молодец, но говнокодец выходит знатный. Вот что тебе мешало сразу при первом присвоении resultX домножить на 1.5? Зачем ты это отдельно хуй пойми куда вынес?
>>161692461 у тебя какая-то ебала происходит с контуром. он почему-то двойной какой-то. думаю дело в способе, которым твой говнокод производит вывод о том, принадлежит ли точка контуру или остается пустой. я бы на твоем месте подумал над этим
>>161692564 >Вот что тебе мешало сразу при первом присвоении resultX домножить на 1.5? Зачем ты это отдельно хуй пойми куда вынес? Потому что это находится за граню моего понимания, параболический отрезок я немного знаю как построить а все что сложнее уже нету интуитивного понимания.
>>161692040 >даже в ААА тайтлах этой хуйни не надо Я не говорю, что для каждой игры нужно писать движок с нуля. Я тебе говорю, что когда кто-то говорит я разраб с 10 летним опытом в геймдеве, нормальные люди полагают, что ты занимаешься компьютерной графикой, пишешь движок или какие-то тулзы к нему и так далее. А не то, что ты работал 10 лет макакой.
>Чтобы сделать Игру нужен геймдизайнер. Да, он нужен. Но им может стать абсолютно любой не тупой человек. Максимальные сложности, которые могут у него возникнуть - это проблемы с функцией в экселе при вычислении какой-нибудь игровой хуйни.
>не нужно никакого ебучего матана, процедурного моделирования Для очередной шаблонной хуйни - не нужно. Для крутой ААА игры - нужно. Почти любая известная ёба-игра написана либо на движке компании, либо на ОЧЕНЬ сильно доработанном уече/крайенджине/e.t.c. И это не просто какие-нибудь кастомные шейдеры, а порой что-то вообще принципиально новое. Или как минимум какаие-нибудь реализованные фичи с последних статей сигграфа или типа того.
Итого: крутой разработчик компьютернйой графики - это чувак с phd в рендеринге и большим опытом работы, прочитавший десятки книг и сотни статей. А геймдизайнер - это какая-то кукарекающая гуманитарная блядь, закончившая максимум годовые курсы или вообще нихуя.
>>161692461 Тебе тут не нужен цикл по x и y. И условие про resultX<countX тоже. Они не делают вообще нихуя. Просто просчитывается одно и то же x*y раз.
Самый оптимальный вариант это: 1) Создаешь двумерный массив. 2) Заполняешь его точками. 3) За один цикл по a ты заменяешь в своём массиве нужные точки звездочками. 4) Отрисовываешь на экран массив. Всё.
>>161693731 ну все. красавчик, хули. теперь выбери две точки на поле и проведи между ними отрезок. тред потух что-то. надо внести очередную дозу неосиляторства
>>161693993 1) вариант сложный задаешь две координаты, ищещь у википидоров уравнение прямой по двум точкам. записываешь его и вычисляешь все х,у в диапазоне от х первой точки до х второй точки 2) довольно очевидная хуйня - посчитать приращение по у на единицу шага по х как отношение (у1-у2)/(х1-х2), и просто последовательно добавлять его с каждым шагом к прошлому значению У очень плохо что такие простые вещи у тебя вызывают затруднения. займись менее математическими областями в кодинге
>>161694402 >1) вариант сложный задаешь две координаты, ищещь у википидоров уравнение прямой по двум точкам. записываешь его и вычисляешь все х,у в диапазоне от х первой точки до х второй точки 2) довольно очевидная хуйня - посчитать приращение по у на единицу шага по х как отношение (у1-у2)/(х1-х2), и просто последовательно добавлять его с каждым шагом к прошлому значению У Все я уже перестаю что либо понимать, я выдохся.
>займись менее математическими областями в кодинге Уже занимаюсь ищу работу веб макакой.
>>161694358 Ты можешь сделать на манер своего этого круга.
У тебя есть точка (x1, y1) и точка (x2, y2). Ты хочешь между ними провести отрезок. Берешь и считаешь расстояние между ними по осям x и y. То-есть, xdistance = x2 - x1; ydistance = y2-y1. Теперь берешь какой-то маленький шаг, типа 0.1 или 0.01 и шагаешь от первой точки. То-есть, закрашиваешь следующие точки: for(double step = 0.0; step <= 1.0; step += 0.01) pixel[x1 + xdistance step, y1 + ydistancestep] = звездочка.
>>161694514 можно еще последовательно заполнять центральные точки между имеющимися. например у тебя точки А(х1, у1) и Б(х2, у2). чтоб получить точку С, принадлежащую той же прямой, надо вот так ее координаты вычислить С((х1+х2)/2, (у1+у2)/2) потом сделать то же самое для пар точек А и С, С и Б. и так далее. но где-то там возможны траблы с дискретностью поля, центральной точки у отрезка четной длины тупо не существует. ну там короч поможет тебе какое-нибудь тупое округление или добавка единички++
>>161694779 >pixel[x1 + xdistance step, y1 + ydistancestep] Там xdistance умножить на step и ydistance умножить на step. Макаба сожрала знаки умножения.
>>161694788 конечно же нету. формулы это просто увязывание с помощью некоторой нотации, которая тебе известна (ты же знаешь что такое +, -, = и т д), связанных множеств различных значений. у тебя где-то в голове какое-то фундаментальное непонимание самой сути пространства, которое использует этот матаппарат
>>161694788 >материалы которые ПОНЯТНО поясняют Берешь в руку карандаш. Кладешь на стол лист бумаги А4, записываешь себе на него с десяток формул из интернета, типа уравнений окружности, парабол, гипербол, отрезков, каких-нибудь простых функций, типа экспонент, 1 делить на экспоненту, логарифмы и всё такое прочее. Потом берешь и начинаешь их на листке рисовать от руки. То-есть, подставляешь точки, отображаешь их на графике, соединяешь линией. Ну ты понял.
Через некоторое время примерно будешь представлять что происходит.
>>161695990 Охуенно! Навевает воспоминания, как я в универе софтверный рендерер писал. Правда меня там хватило только до растрезации и отсечения невидимых граней. Дальше хер забил.
Думаю, может сейчас в свободное время начать пилить его сначала.
>>161696291 Для тех знаний, которые даёт Гугл, хватит базовой школьной программы, никакие дохуя сложные и запутанные теоремы там не даются, потому что их невыгодно использовать. И учись уже интегрировать чужой код в свой иначе пошёл нахуй
>>161679954 (OP) вот те парабола ax0=const/ нач. ускорение по х ay0=const /нач. ускорение по y g=const/гравитация x0=const y0=const t0=0 dt=const t=t+dt x=x0 y=y0 Цикл (ограничить предельным t): Vx=axt Vy=(ay-g)t x+=Vx y+=Vy рисовать точку x,y t=t+dt конец цикла
>>161700830 Если тебе не нужно сопротивление воздуха, которое в его примере кстати не указано, то ax0 вообще задавать не нужно, скорость по иксу будет постоянной, надо ее только задать как начальную константу.
>>161701341 да этот прав. там ускорения вообще не нужны получается, кроме g Vx0=const/ нач. скорость по х Vy0=const /нач. скорость по y g=const/гравитация x0=const y0=const t0=0 dt=const t=t+dt x=x0 y=y0 Цикл (ограничить предельным t): Vy=Vy-gt x+=Vx y+=Vy рисовать точку x,y t=t+dt конец цикла
Спрошу заодно тупой вопрос. 20 лвл, в вузовской математике шарю на уровне тупого счета по формулам. Что значит Х(у)? "Икс от игрек", это что, блядь? В школе объяснить не смогли.
Началась теория вероятности, там какие-то P(m) что ли, тоже не понятно. Что это значит? Что от чего?
>>161702165 это значит что существуют два множества, первое значения у, второе значения х они друг другу сопоставлены, то есть между ними установлено какое-то соответствие, которое как раз и выражается функцией у = f(х). все это значит что каждому х соответствует какое-то у, причем отношения могут быть не только 1 к 1, например одному какому то х могут соответствовать больше чем один у и наоборот
>>161692735 > Для очередной шаблонной хуйни - не нужно. Для крутой ААА игры - нужно. еба ты загоняешься, челик. приведи как мне примеры ААА игр запиленных на своих движках со своими рендерами? даже гта 5 запилена на стороннем готовом движке, никому в крупных компаниях нахуй не нужно тратить время на изобретение велосипедов
>>161702165 Попробую объяснить. x=Х(у) { ......тут выполняется математическое действие которое потом ......Например y+x+0.5; ......возвращается значение в x }
ОП, я тот кто в начале про матлаб писал, -x*x короче. Кем ты блядь работаешь и сколько получаешь? Ты говоришь о баснословных финансах в кодинге, но ебать, рисуешь графики звездами в виндовой консоле. Какими ты вообще проектами занимаешься? Какие-нибудь file dublicate finderы пишешь?
>>161702917 Чувак, тебе надо погрузиться в готовые решения. Похоже лоу-левел подход не для тебя, судя по треду. Не расстраивайся. Те кто шарит в низкоуровневом движкоебстве тоже не особо сильны в ассемблерах, а ассемблерщики не слишком рубят в квантмехе, на котором основан транзистор. Каждому свой уровень.
>>161680603 x=x0+v0cos(aloha0)t y=y0+v0sin(alpha0)t-(gt^2)/2 Вот тебе уравнения движения тела, брошенного под углом к горизонту в условиях земной гравитации. Если не земная - меняешь g на нужную
>>161703198 в принципе реально я думаю, но стоило бы запилить ( именно доделать до конца ) пару своих игр, что-бы была какая-то практика и усвоились алгоритмы в голове. на практике матан быстрее начинаешь понимать
>>161702917 У тебя вроде t0 вообще не используется, убери его нахуй а начальное t сделай нулем, и dt поставь равным 1 хотя бы. Должно появиться 15 точек по идее
>>161704105 охуеть зачем ты это в консоли делаешь блять сука че за идиотизм консоль это блять консоль а не координатная плоскость дурачина ты ебаный там синусы ебанные считать не надо блять достаточно просто печатать строку со смещенной звездочкой и потом обратно кблять какие идиоты нахуй лезут делать что-то я в ахуе
>>161704159 Я кажись допер, сделай начальную Vy0 отрицательной, и строчку Vy0 = Vy0 - dt поменяй на Vy0 = Vy0 + g. Естественно после того как сделаешь x0=0 и y0=15.
>>161703246 Не не, это не так работает. если человек не шарит в физике, но знает асм, это не значит, что он не может шарить в физике. Ему просто это нахуй не надо.
А ОП же, даже если захочет, будет очень туго изучать это все, ну потому что он долбоеб. Хотя может быть и не долбоеб, с окружностью то он все таки разобрался.
Я в школе был двоешником, так что тоже туго разбирался в этом дерьме, правда я в этом разобрался без посторонних антонов. А сейчас все это дерьмо кажется таким элементарным и обыденным, что лень держать руки наж клавиатурой для реализации подобных механик http://output.jsbin.com/tageju/9
>>161704577 >>161704542 >>161704531 вы все больные люди, просто клинические идиоты, один еблан про какую-то СИШКУ говорит когда тут нахуй из синтаксиса ничего нет блять, второй называет этот высер НИЗКОУРОВНЕВЫМ, третий блять синус В КОНСОЛИ использует
>>161704438 Ну короче, тебе просто начальные x и y надо заменить на те значения что я писал. По сути это и будет x0 и y0 (х начальное и y начальное). Попробуй.
>>161704577 > с окружностью то он все таки разобрался Нихуя он не разобрался. За него аноны практически уже код написали, при том он так и не понял толком как и что там работает.
>>161679954 (OP) >используя синусы и косинусы Не советую. На экстемальных углах оче хуёво выходит, если вдруг потребуются тангенсы, котангенсы. Обмазывайся кватернионами, как норм посоны. А вообще если хочешь узнать о том какая математика юзается в играх читай книue Jason Gregory - Game Engine Architecture. Четвёртый раздел как раз посвящён всей той математике, что юзается в игорях.
>>161680603 >заставить точку двигаться по заданной параболической траектории Просто и без задней мысли раскладываешь силы по базису в декартовой системе координат.
>>161704658 объяснишь ему какую библиотеку подрубить и как ее использовать, что бы графику выводить, он может и не будет выводить в консоли. рисовать ANCII-узоры в консоли - это нормально http://output.jsbin.com/rebazi/7
>>161704830 ну блять может со временем разберется. я надеюсь.
>>161704748 bool inc = true; int k = 0; int total = 20; while (true) { for (int i = 0; i < k; i++) Console.Write("-"); Console.Write("*"); for (int i = k+1; i < total; i++) Console.Write("-"); k += inc ? 1 : -1; if (k == total || k == 0) inc = !inc; Console.WriteLine(); for (int j = 0; j < 2; j++) { for (int i = 0; i < total; i++) Console.Write("-"); Console.WriteLine(); } Thread.Sleep(50); }
держи немощь ебанная >>161704941 нахуй ты дауну который в консоли че-то считать собрался советуешь что-то?
>>161685085 Нахуй ты ебашишь сонсольное приложение? В шарпах наверняка есть какая-то формошлёпская хуйня, чтобы можно было рисовать графики в оконном приложении не напрягая пукан.
>>161705779 СУКА ТЫ ДИБИЛ ЕБАННЫЙ БЛЯТЬ ТЫ ПОНИМАЕШЬ ЧТО ТАКОЕ НАХУЙ КООРДИНАТНАЯ ПЛОСКОСТЬ БЛЯТЬ? ФУНКЦИЯ ЭТО ОТОБРАЖЕНИЕ Р->Р А ТЫ БЛЯТЬ КАК РЕЗУЛЬТАТ ФУНКЦИИ В КОНСОЛЬ ВЫВЕДЕШЬ ТЫ, ДЕГЕНЕРАТ, ШАЛОПАЙ, ВЕНТИЛЯТОР ЕБАННЫЙ? ЕДИНСТВЕННЫЙ ТВОЙ ВАРИАНТ ВЫЧИСЛЯТЬ ЗНАЧЕНИЯ С МАЛЕНЬКИМ ШАГОМ И ПОТОМ НАХУЙ РЕЗУЛЬТАТ ДО ТЫСЯЧНОЙ СОКРАЩАТЬ И НА НАХУЙ РЕЗУЛЬТАТ*1000м МЕСТЕ В КОНСОЛЕ ВЫВОДИТЬ ЗВЕЗДОЧКУ НО У ТЕБЯ МОНИТОРА БЛЯТЬ ДЛЯ ЭТОГО НЕ ХВАТИТ И ЭТО ТАКОЙ ВЕЛОСИПЕД ЧТО У ТЕБЯ МАТЬ УМРЕТ СРАЗУ
>>161705779 Проиграл с тебя в голосину, если честно. Математические принципы это вообще абстракции придуманные от нехуй делать. Так что проще их понять вообще не прикасаясь к клавиатуре вообразив всё в своём мозгу.
>>161706105 Успокойся мань все делалось ради простоты усвоения.
>>161706252 >Так что проще их понять вообще не прикасаясь к клавиатуре вообразив всё в своём мозгу. Я в душе не ебу какие числа мне нужно перемножить чтобы точка по кругу пыздувала.
>>161706105 хули ты разорался, эникейщик мамин? по существу никакой абсолютно разницы нет, отрисовывать фигуру в консоли или в готовом каком-то UI. да хоть блять из Excel-вских табличек вручную перерисовывать маркером график на необъятных булках твоей мамаши-шлюхи. как раз путь разделения движка и юзер-интерфейса - прогрессивный. а твой этот петушиный способ все валить в одну кучу нахуй никому не сдался и даунизм.
>>161706430 ну вот теперь просто помни, что ты тупое ничтожество, посидел такой пару часов, написал 50 строчек кода и думаешь ХМММ БЛЯТЬ А ЧЕ Я ЭТО ТУТ СИЖУ И ПИШУ, ГДЕ ЖЕ РЕЗУЛЬТАТ МОЕЙ РАБОТЫ блять НАДО НАВЕРНОЕ ПОЙТИ НА ДВАЧ ВЫСРАТЬ ЧЕ-ТО ТИПА МОЯ РАБОТА НЕНАПРАСНА И ЕЕ КТО-ТО УВИДИТ хммм не был бы ты хуйлом ебучим сидел бы и молча делал что-то, хотя ты с рождения идиот, раз ты такие вещи пытаешься сделать >>161706430 чтобы точка по кругу пыздовала, идиотик ты мой, нужно решать уравнение x^2+y^2=r^2, фиксируешь что х изменяется от (-r; r) потом выбираешь минимальный шаг, и решаешь уравнение с одним неизвестным >>161706662 ты нахуй это высрал? разница блять такая что юи представляет координатную плоскость, а консоль это не координатная плоскость блять
>>161706401 мне не ясно каким образом консоль, которая только вариант вывода результатов работы кода, относится к процессам вычисления, которые вообще представляют собой сугубо обработку ячеек памяти каким-то заданным образом и никакой визуализации не имеют.
>>161706871 > а консоль это не координатная плоскость блять ну если ты тупорылый неосилятор то конечно же нет. а как по мне так любой двумерный массив может служить координатной плоскостью. даже ОП, с его днищенской силой абстракции, понимает это. ты наверное какой-нибудь долбоеб который вырос из делфи или матлаба, для которых нет разницы между отображением и внутренней имплементацией.
>>161707091 хуйло ебанное я шарп прогер по профессии блять, массив двумерный может служить координатной плоскостью блять один раз, чтобы сделать какое-то изменение необходимо его еще раз заново полностью вывести, дибил ебанный
>>161707024 Да давай уже, уебывай отсюда. Был тут уже выше один любитель попиздеть за геймдев. Точно такой же ёбик, который умеет только как обезьяна готовые поля заполнять в движках.
>>161707244 хуесос ты решеточный, а не прогер ОП для понимания принципа только юзает массив из 1000 точек, который можно хоть 5000 раз в секунду обновлять , и ему похуй какое будет разрешение его картинок, но нет же, найдется хуесос который вставит свое высокое ЧСВ и скажет "все хуйня давай сначала" поссал на тебя.
>>161707640 отображение из (-inf;+inf) в [-1;1], и вот еблану опу надо этот результат из [-1;1] надо вывести ну или записать зачем-то. >>161707703 полностью не перерисовывается
>>161706871 >ХМММ БЛЯТЬ А ЧЕ Я ЭТО ТУТ СИЖУ И ПИШУ, ГДЕ ЖЕ РЕЗУЛЬТАТ МОЕЙ РАБОТЫ блять НАДО НАВЕРНОЕ ПОЙТИ НА ДВАЧ ВЫСРАТЬ ЧЕ-ТО ТИПА МОЯ РАБОТА НЕНАПРАСНА И ЕЕ КТО-ТО УВИДИТ Ну ты и ебланоид, перечитай ОП пост.
>чтобы точка по кругу пыздовала, идиотик ты мой, нужно решать уравнение x^2+y^2=r^2, фиксируешь что х изменяется от (-r; r) потом выбираешь минимальный шаг, и решаешь уравнение с одним неизвестным Это математическая абстракция, такую хуйню в книжках высирают, а пояснить так чтобы было понятно у тебя ума не хватает.
>>161704941 >какая математика юзается в играх Хуита а не книжка. Помню начинал как-то читать про то, какой там в современных графических конвеерах пайплайн, как он устроен, но потом бросил. Там написана очевидная хуйня. >Обмазывайся кватернионами, как норм посоны. Кватернионами обмазываются только когда нужно, чтобы камера вращалась на 360 градусов, как во всяких симуляторах самолетов, чтобы не возникал Гамбал лок. А для обычных игруль достаточно матрицы перемножать. > какая математика юзается в играх В реалтайм рендеринге - никакая. В физическом движке - да, там дохуя всего. Всякие современные методы решения диффуров и прочее. Но тут игровой движок-то и не причём. Это огромная область знаний, где чуваки физику учат годами, а не так, что какой-то хер с горы берет и в свободное время под пивко что-то там реализует. Ну и тесты коллизий примитивов еще есть, но это хуйня, а не математика.
>>161707976 > В физическом движке - да, там дохуя всего. Всякие современные методы решения диффуров и прочее. Но тут игровой движок-то и не причём. Это огромная область знаний, где чуваки физику учат годами, а не так, что какой-то хер с горы берет и в свободное время под пивко что-то там реализует.
Берется просто уже готовый физ движок, типа булета например, и он уже все, что надо, считает.
>>161707894 абстрактно пиздец, что именно тебе непонятно? есть формула x^2+y^2=r^2. у тебя Р фиксировано (выбранный радиус), а х и у изменяются от -Р до Р. Тебе надо получить все решения этого уравнения, каждое решение - точка, в совокупности эти точки на координатной плоскости вырисовывают тебе то, что ты считаешь кругом. Рассказывать как решать уравнение? несложно, просто подставляешь все значения [0, R] вместо одной из координат и записываешь получившееся значение вместо другой. Эти координаты (подставленная и получившаяся) и есть одна из бесконечного количества нужных точек
>>161708252 Охуеть как понятно объяснил, давай я попробую так само, берешь ту координату вставляешь в эту координату та чтобы была с радиусом равной 2 параллельных параллелепипедных прямых точек которые основываются на формулах пуанкаре тензорных нелинейных значений ненулевой сумы тривиальных нулей.
>>161709849 >просто подставляешь все значения [0, R] вместо Х и записываешь получившееся значение вместо У, решив уравнение x^2+y^2=r^2 если тебе дауну совсем непонятно, то возьми за Р единицу (радиус круга = 1) решаешь уравнение: x из [0;1] x=0 => 0^2+y^2 = 1, y=+-1. вот ты получил аж две пары точек, таких пар бесконечно много
>>161710030 Ты долбаеб не лучше опа. Пояснял бы тогда за полярную систему. Он там выше с ее помощью так уже и нарисовал кружочек. Темболее ты ему рассказываешь как провести точку по окружности. Кроме того что таким хуем ты заебешся ее вести с постоянной угловой скоростью так еще и дрочится надо будет когда x достигнет +-Р
>>161688867 Берешь переменную допустим Х, берешь переменную допустим У, вводишь в них числа с клавы, потом берешь переменную Z ей присваиваешь сумму Х и У. Выводишь Z на экран. Всё
Вот еще гениальный алгоритм, как отрисовать окружность. Мы знаем по теореме Пифагора как найти расстояние между двух точек. 1) Перебираем каждый пиксел и определяем расстояние до центра окружности. Если он меньше или равен радиусу - 1, то рисуем звездочку. 2) У нас получается закрашенная окружность. 3) Далее мы применяем к нашему изображению свертку с ядром Лапласса или Соболя или любым другим, позволяющим посчитать градиент. 4) Теперь у нас имеется окружность, большая на единицу, чем наш изначальный радиус. Для этого нам и нужно было из радиуса вычесть единицы. Что и требовалось нам отрисовать.
>>161712545 Слушай, если хочешь поделать что-нибудь покруче, чем звездочки в консоли отрисовывать, можем с тобой объединиться и вместе что-нибудь написать. Можем софтверный рендерер, например, попробовать написать. Там, считай, то же самое, только с нормальными rgb изображениями. Я сам занимаюсь компьютерной графикой и знаю, в принципе, как устроены современные графические конвееры, но вместе было бы веселее его делать. В каком-нибудь телеграме можем болтать.
>>161713532 Нет не могу, сейчас у меня нет времени ищу работу на JS/react, да и от излишнего "матана" в треде у меня голова разболелась а если будем писать рендер то я вообще ебанусь.
>>161714257 >нет времени Ну я тоже не собираюсь его фуллтайм хуярить. Так, в свободное время, раз в неделю за него садиться. Да и сам занят ближайшие пару недель. Софтверный рендерер вообще довольно бесполезный сам по себе. На нём не сделаешь игрушку или типа того, потому что он очень медленный, но зато прикольно. Ну кароче как хочешь.
>>161715115 Для реалтайм рендеринга используются некоторое API для работы с видеокартой. Это OpenGL или DirectX. Недавно еще Vulkan релизнули. То-есть, ты как-бы передаешь данные в видеокарту, программируешь, что с этими данными видеокарта должна сделать и на выходе получаешь изображение. А софтверный рендерер - это то же самое, только ты делаешь это всё в коде сам. Сам отрисовываешь примитивы, сам делаешь растрезацию, сам убираешь невидимые грани, сам делаешь всякие z-буфферы и прочее.
Ну и работает это по сравнению с видеокартой достаточно медленно.
Ну, например, чтобы отрисовать треугольник на экране с помощью OpenGL - тебе нужно просто передать туда 3 точки, сказать, что это должен быть треугольник, сказать каким цветом отрисовать и всё.
А в софтверном рендерер ты должен сам на экране отрисовать его (почти как ты в консоле, только на изображении), определить, какие пиксели в него входят, закрасить их нужным цветом и только потом получить итоговое изображение. Ну, это базовый просто пример.
>>161717388 >матана Смотря что ты называешь матаном. Производные/Интегралы никакие там считать не нужно. Простые геометрические штуки там встречаются. Типа вычислений перпендикуляра к треугольнику и подобного. Но это всё учится быстро и обсосано кучу раз во всяких книжках и туториалах.
Есть тут аноны которые могут пояснить или материалы для чайников которые подробно объясняют как все это сделано.