Суббота, 23 Ноября 2024, 23:12

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Векторы в Game Maker
ЙакудДата: Воскресенье, 03 Июля 2011, 05:30 | Сообщение # 1
участник
Сейчас нет на сайте
Написал небольшую систему для работы с векторами в Game Maker.
На мой взгляд, система получилась довольно удобная, но требует доработки и расширения функционала.
Что есть:
Удобная система для создания векторов
Можно быстро нарисовать 1-2 или сразу все вектора, которые были инициализированы в ГМ.
Быстрое копирование и удаление вектора
Так же быстро можно получить любой параметр вектора: X, Y, Rotate (угловой коэффициент), Length (длинна)
Различные операции с векторами:

  • Скалярное произведение
  • Векторное произведение
  • Угол между двумя векторами
  • Длинна вектора
  • Угловой коэффициент
  • Сумма векторов
  • Разность векторов
  • Произведение вектора на скаляр
  • Сумма вектора и скаляра
  • Модуль вектора
  • Изменение знака вектора
  • Нормализация вектора

Скриншот:


Download:
v0.0.1

Source:
v0.0.1


"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso
.blanco 2.0


Сообщение отредактировал Йакуд - Воскресенье, 03 Июля 2011, 16:17
IIIypukДата: Воскресенье, 03 Июля 2011, 14:01 | Сообщение # 2
-- ArchLinux Fan --
Сейчас нет на сайте
Оффтоп: Представленная версия к релизу либо 1.0 либо 1.0 beta.

Одинокий юзер
ЙакудДата: Воскресенье, 03 Июля 2011, 16:01 | Сообщение # 3
участник
Сейчас нет на сайте
IIIypuk, Собственно это имеет значение какая версия? 1.0 будет тогда, когда люди выскажутся и я сделаю все нужные исправления и дополнения...

"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso
.blanco 2.0
VinchensooДата: Воскресенье, 03 Июля 2011, 16:02 | Сообщение # 4
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Йакуд, что там есть-то? Хоть описание сделай... А суммирование, умножение векторов делается за 5 минут

ЙакудДата: Воскресенье, 03 Июля 2011, 16:18 | Сообщение # 5
участник
Сейчас нет на сайте
Vinchensoo, поправил описание.
Главная задача на данный момент сделать систему удобнее и добавить новые функции для работы с векторами.


"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso
.blanco 2.0
NeZnayuДата: Воскресенье, 03 Июля 2011, 16:20 | Сообщение # 6
__танцуй!__
Сейчас нет на сайте
Классно, но пока практической пользы никакой.
Было бы круто иметь возможность задавать координаты векторов и решать математические задачи.

ПС
Когда только увидел название темы сначала решил что ты изобрел способ импортировать векторную графику в гм smile


CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу
ЙакудДата: Воскресенье, 03 Июля 2011, 16:22 | Сообщение # 7
участник
Сейчас нет на сайте
Quote (NeZnayu)
Было бы круто иметь возможность задавать координаты векторов и решать математические задачи.

А тут нельза задавать координаты векторов? о_О
ЧТо ты имеешь ввиду под решением математических задач? Какие операции с векторами нужны?


"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso
.blanco 2.0
GECKДата: Воскресенье, 03 Июля 2011, 16:22 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте
Каждый программист должен написать свою велосипедную библиотеку для работы с векторами)

По теме - было бы неплохо добавить еще и вычисление квадрата длины вектора, часто это быстрее и удобнее.


Всё гениальное просто. И хреново работает.
ЙакудДата: Воскресенье, 03 Июля 2011, 16:24 | Сообщение # 9
участник
Сейчас нет на сайте
GECK, я просто не видел на ГМ набора скриптов для работы с векторами..
Quote (GECK)
По теме - было бы неплохо добавить еще и вычисление квадрата длины вектора, часто это быстрее и удобнее.

Окей, сделаемс..


"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso
.blanco 2.0
VinchensooДата: Воскресенье, 03 Июля 2011, 16:28 | Сообщение # 10
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (Йакуд)
Сумма вектора и скаляра

Это как surprised


GECKДата: Воскресенье, 03 Июля 2011, 16:55 | Сообщение # 11
заслуженный участник
Сейчас нет на сайте
Quote (Vinchensoo)
Сумма вектора и скаляра

Видимо, к каждой координате вектора прибавляется скаляр.


Всё гениальное просто. И хреново работает.
ЙакудДата: Воскресенье, 03 Июля 2011, 16:57 | Сообщение # 12
участник
Сейчас нет на сайте
Quote (GECK)
Quote (Vinchensoo)
Сумма вектора и скаляра Видимо, к каждой координате вектора прибавляется скаляр.

Да, именно так.


"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso
.blanco 2.0
NeZnayuДата: Воскресенье, 03 Июля 2011, 16:58 | Сообщение # 13
__танцуй!__
Сейчас нет на сайте
Quote (GECK)
Видимо, к каждой координате вектора прибавляется скаляр.

Вроде так и есть, поправьте если не прав..

Quote (Йакуд)
А тут нельза задавать координаты векторов?

А как тут задать начальные координаты векторов?


CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу
ЙакудДата: Воскресенье, 03 Июля 2011, 17:29 | Сообщение # 14
участник
Сейчас нет на сайте
NeZnayu, собственно, каждый вектор имеет начальные координаты [0, 0]. Не составляет никакой сложности подставить новые координаты и выразить вектор исходя из них.
Небольшой пример:

Code
var coord_x, coord_y;
a = vector(100, 50);

coord_x[0] = 200; // Начальная координата вектора
coord_y[0] = 150; // Начальная координата вектора
coord_x[1] = coord_x[0]+vector_get_x(a);
coord_y[1] = coord_y[0]+vector_get_y(a);


Мы получаем координаты вектора в массивах coord_x, coord_y с другой начальной координатой. А любые вычисления можно производить с действующей координатой. На результат повлиять не должно.


"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso
.blanco 2.0


Сообщение отредактировал Йакуд - Воскресенье, 03 Июля 2011, 17:30
VinchensooДата: Воскресенье, 03 Июля 2011, 17:39 | Сообщение # 15
Злобный социопат с комплексом Бога
Сейчас нет на сайте


ЙакудДата: Воскресенье, 03 Июля 2011, 17:46 | Сообщение # 16
участник
Сейчас нет на сайте
Quote (Vinchensoo)
Операции над векторами начали придумывать уже

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


"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso
.blanco 2.0
VinchensooДата: Воскресенье, 03 Июля 2011, 17:56 | Сообщение # 17
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Йакуд, вектора только двумерные?

ЙакудДата: Воскресенье, 03 Июля 2011, 17:59 | Сообщение # 18
участник
Сейчас нет на сайте
Vinchensoo, сейчас да. Были мысли сделать и трехмерные, без использования новых функций, проще говоря "незаметно" ввести трехмерные вектора в существующую систему, чтобы одними и теми же функциями можно было работать и с двумерными, и с трехмерными векторами..
Скорее всего сделаю такую возможность.


"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso
.blanco 2.0


Сообщение отредактировал Йакуд - Воскресенье, 03 Июля 2011, 17:59
VinchensooДата: Воскресенье, 03 Июля 2011, 18:00 | Сообщение # 19
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (Йакуд)
Vinchensoo, сейчас да. Были мысли сделать и трехмерные, без использования новых функций, проще говоря "незаметно" ввести трехмерные вектора в существующую систему, чтобы одними и теми же функциями можно было работать и с двумерными, и с трехмерными векторами.. Скорее всего сделаю такую возможность.

Вектора еще бывают и n-мерные smile Сделай аналитический центр и для них, если математика позволяет.

Их не отрисуешь, конечно.


ЙакудДата: Воскресенье, 03 Июля 2011, 18:10 | Сообщение # 20
участник
Сейчас нет на сайте
Vinchensoo, математика и программирование позволит мне это сделать, но, если честно, то я не очень понимаю практическое применение n-мерных векторов. Двумерные и трехмерные понятно, а вот больше для каких целей??

"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso
.blanco 2.0
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг