Перейти к содержимому


Фотография

Векторная библиотека

lua vector вектор

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 12

#1 Оффлайн   Ktlo

Ktlo

    Продвинутый пользователь

  • Пользователи
  • PipPipPipPip
  • 115 сообщений

Награды

                 

Отправлено 30 Август 2015 - 15:25

После того, как я написал про метатаблицы в Lua, захотелось провернуть что-нибудь этакое. Данная библиотека добавляет одну основную функцию, которая возвращается при вызове этой библиотеки с помощью require(module: string). Эта функция возвращает вектор и принимает в качестве аргументов числа, которые соответствуят каждому новому измерению в векторе. Но сначала, разумеется нужно скачать библиотеку. Вы можете сделать это с помощью команды в OpenOS или CraftOS.

 

pastebin get mdfDvmps /lib/vector.lua

 

Разумеется в CraftOS нет никакого require(), но вы можете посмотреть эту тему  :D. Хотя также в CraftOS есть своя библиотека с векторами.

Вернёмся к основной функции, если до сих пор не понятно, как она принимает аргументы, я просто запишу вот так: vector(x: number, y: number, z: number, ... ). Как видите у вектора может быть не ограниченное (ограничивается возможностями Lua) количество измерений.

Сам вектор хранит измерения и их значения в себе как в массиве. Каждый вектор хранит количество измерений, которое он обрабатывает в поле n. То-есть, чтобы получить кол-во, обратитесь к этому полю примерно так:

local vector = require "vector"
local a = vector(1, 5, 89, 6)
print(a.n)
--> 4

Все операции с векторами создают новые вектора, а не изменяют старые.

 

Теперь я опишу все операции с вектором

Спойлер

 

Методы:

Спойлер
 

Если хотите увидеть что-нибудь ещё в этой библиотеке, пишите. Постараюсь добавить.


Сообщение отредактировал Ktlo: 31 Август 2015 - 00:46

  • Totoro, Fingercomp, Mecopy6ka и 3 другим это нравится

#2 Оффлайн   LeshaInc

LeshaInc

    Rust Evangelism Strike Force

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1 178 сообщений
  • ГородЛуна

Награды

                 

Отправлено 30 Август 2015 - 16:03

Сначала подумал что эта библиотека предоставляет интерфейс для работы с векторной графикой. Как оказалось, векторы из C++. Советую сменить название темы.



#3 Оффлайн   Ktlo

Ktlo

    Продвинутый пользователь

  • Автор темы
  • Пользователи
  • PipPipPipPip
  • 115 сообщений

Награды

                 

Отправлено 30 Август 2015 - 16:41

Советую сменить название темы.

 

Какое посоветуешь? Признаю, сочинять названия я не умею.



#4 Оффлайн   Totoro

Totoro

    Свой человек

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1 442 сообщений

Награды

                                      

Отправлено 30 Август 2015 - 17:01

Сначала подумал что эта библиотека предоставляет интерфейс для работы с векторной графикой. Как оказалось, векторы из C++. Советую сменить название темы.

 

Это не векторы из С++, это векторы из математики.

Я считаю текущее название подходит.


  • SergOmarov это нравится

#5 Оффлайн   Ktlo

Ktlo

    Продвинутый пользователь

  • Автор темы
  • Пользователи
  • PipPipPipPip
  • 115 сообщений

Награды

                 

Отправлено 30 Август 2015 - 17:09

Сначала подумал что эта библиотека предоставляет интерфейс для работы с векторной графикой. Как оказалось, векторы из C++. Советую сменить название темы.

 

Подожди, это не динамические ли массивы в С++? Я то сделал библиотеку для работы с векторами из линейной алгебры.


Сообщение отредактировал Ktlo: 30 Август 2015 - 17:09


#6 Оффлайн   Ktlo

Ktlo

    Продвинутый пользователь

  • Автор темы
  • Пользователи
  • PipPipPipPip
  • 115 сообщений

Награды

                 

Отправлено 31 Август 2015 - 00:48

Исправил некрасивый и длинный вывод вектора через tostring()



#7 Оффлайн   Krutoy

Krutoy

    Свой человек

  • Пользователи
  • PipPipPipPipPipPipPip
  • 493 сообщений

Награды

                 

Отправлено 31 Август 2015 - 11:20

Пробежался по коду. Написано довольно аккуратно, стандартизированно и с высокой производительностью.

Но для частных случаев, реализация под конкретную размерность (например трехмерный вектор) будет быстрее твоей.

 

Расскажи, какая область применения такого многоразмерного вектора?



#8 Оффлайн   Fingercomp

Fingercomp

    Видимый невидимый

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1 863 сообщений

Награды

                                               

Отправлено 31 Август 2015 - 14:19

Пробежался по коду. Написано довольно аккуратно, стандартизированно и с высокой производительностью.

Но для частных случаев, реализация под конкретную размерность (например трехмерный вектор) будет быстрее твоей.

 

Расскажи, какая область применения такого многоразмерного вектора?

Удовольствие получить, наверное))


  • SergOmarov и Ktlo это нравится

#9 Оффлайн   ivan52945

ivan52945

    Продвинутый пользователь

  • Пользователи
  • PipPipPipPip
  • 106 сообщений

Награды

           

Отправлено 31 Август 2015 - 22:53

Удовольствие получить, наверное))

 

Чтоб внукам было что рассказать  :)(кроме различных дворовых Adventures time и института time)


Сообщение отредактировал ivan52945: 31 Август 2015 - 22:54

  • Ktlo и qwertyMAN это нравится

#10 Оффлайн   LeshaInc

LeshaInc

    Rust Evangelism Strike Force

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1 178 сообщений
  • ГородЛуна

Награды

                 

Отправлено 31 Август 2015 - 23:12

Чтоб внукам было что рассказать  :)(кроме различных дворовых Adventures time и института time)

Буду внукам рассказывать как мне два великих человека подарили уголь и как меня убила ведьма.
  • Saintmare это нравится

#11 Оффлайн   NEO

NEO

    Орден К.А.

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1 571 сообщений
  • ГородСолнце

Награды

   2                        

Отправлено 01 Сентябрь 2015 - 12:35

Сначала подумал что эта библиотека предоставляет интерфейс для работы с векторной графикой. Как оказалось, векторы из C++. Советую сменить название темы.

:facepalm: , ты все уроки математики прогулял.


  • Fingercomp и qwertyMAN это нравится

#12 Оффлайн   Fingercomp

Fingercomp

    Видимый невидимый

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1 863 сообщений

Награды

                                               

Отправлено 01 Сентябрь 2015 - 12:54

:facepalm: , ты все уроки математики прогулял.

Или же он ещё не дорос до векторов))


  • qwertyMAN это нравится

#13 Оффлайн   Fingercomp

Fingercomp

    Видимый невидимый

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1 863 сообщений

Награды

                                               

Отправлено 23 Сентябрь 2016 - 21:19

Обожаю некропостить, особенно, когда есть причина :P

Отпушил эту действительно полезную библиотеку на OpenPrograms. oppm install libvector.

Странно, что тема висит незакреплённой в разделе. И сам ещё несколько раз пролистывал, когда отбирал.


  • Saintmare это нравится





Темы с аналогичным тегами lua, vector, вектор

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных


Яндекс.Метрика