Обновить
33
Дмитрий@Keyten

JavaScript

14
Подписчики
Отправить сообщение
О, интересная библиотека (про vue.js). На беглый взгляд напоминает Ractive.js

Собственно, сам Graphics2D начался с проблем с одним из таких фремйворков ( вот этого: jcscript.com/ ), в определённый момент мне пришла мысль — а почему бы не написать свой?
Сам Graphics2D собираюсь поддерживать, как минимум, пока не пофикшу максимум (прошу прощения за тавтологию) багов, всех, что найду, и не реализую несколько интересных мне идей в плагинах.
Вообще говоря, я изначально хотел реализовать полный SVG, т.к. легко переносить SVG-фигуры, ну и на ходу сочинять несложно. Вполне человекопонятный формат… Но потом понял, что реализация займёт больше, чем задумывалось, так что вынес в плагин.
Второй вариант тоже задумывался как такой человекопонятный, но немного другой… Вроде как что удобно — то и использовать.
Третий же изначально вообще подразумевался как удобный для генерации (там были имена свойств f, arg), но потом он тоже превратился в человекопонятный…
_parsePath вызывается только при создании самого пути, проверки на тип простые, так что я не думаю, что сожрёт весь процессор :)

Анимация да, там даже в коде комментарий про это есть ). Ломается из-за отсутствия очереди событий… Сделаю, как только решу, как именно.
А про requestAnimationFrame я просто забыл :)

Спасибо, реализовано github.com/keyten/Graphics2D/commit/87d9988b0e5771ef93cee28c6f986a988894441d
Для анимации также реализую, пока появилась мысль, как её ещё оптимизировать, думаю.
Честно говоря, разработка начиналась аж 2 года назад, когда велосипедом это ещё не было :)
Потом на некоторое время пропало свободное время, и вот оно наконец появилось…

PixiJS — вполне естественно, т.к. там WebGL (а это, если не ошибаюсь, практически прямой доступ к видеокарте).

Я подумаю над WebGL-рендером. Тем более, непосредственно за рисование в Graphics2D отвечают всего 5-6 функций.
Firefox (в Chrome ещё быстрее).
Демо уже добавил (под кодом ссылки на jsfiddle), можете там крутить количество итераций и смотреть.

> А вообще, попахивает LibCanvas'ом
В каком плане? Функции похожи?
Спасибо за интересную подборку.

var card = {
  rank = 11,
  suit = "hearts",
  name = "Jack"
}

Странноватая конструкция для JS.
(видео от code:deck).
Что интересно, до сих пор коммиты есть, причём недавние, а полгода назад новая версия о_О
Если только для этого — есть Kickstarter и его русские аналоги.
Имхо, лучше всего — просто онлайн-версия на JS, которую и на комп сохранить можно, и на планшете она пойдёт.
Количество IPv6 тоже конечно.
Главное, чтоб нескучные. Это самое важное в системе.
Добавлю, что распознать буквы — не сам язык, а только буквы, например, отличить хирагану от катаканы, а латиницу от кириллицы — умеет SugarJS )
var arr = [1, 2, 3, 4];
arr.testProperty = true;
arr.length = 0;
arr.testProperty; // -> true
arr === arr; // true

var old = arr;

arr = [];
arr.testProperty; // -> undefined

old === arr; // false
> Разница между undefined и null появилась в языке случайно, и обычно не имеет значения.
Как-то с DOM-а пошло, что null — когда значение должно быть, но его почему-то нет. А undefined — когда быть не должно.

Как-то так:
var obj = document.body.firstChild; // [object Text]

obj.firstChild; // -> null
// -- у всех объектов определено свойство firstChild, однако конкретно у этого в нём ничего нет
// "да-да, слышал про firstChild, но лично не знаком"

obj.anyOtherValue; // -> undefined
// "что? я ничего не знаю ни про какой anyOtherValue!"
Напишите рекурсивную функцию isEven согласно этим правилам. Она должна принимать число и возвращать булевское значение.

Имеется в виду что-то такое?
function isEven(num){
 if(num == 0) return true;
 if(num == 1) return false;
 return isEven(num - 2 * (num > 0 ? 1 : -1));
}

Я тут, конечно, усложнил…
Но о_О интересный пример. Это ж жутко неэкономично. А если я 10^10 спрошу?

Test it on 50 and 75. See how it behaves on -1. Why? Can you think of a way to fix this?

Случайно осталось? :)

Такой код работает, хотя функция объявляется ниже того кода, который её использует. Это происходит оттого, что объявления функций не являются частью обычного исполнения программ сверху вниз. Они «перемещаются» наверх их области видимости и могут быть вызваны в любом коде в этой области. Иногда это удобно, потому что вы можете писать код в таком порядке, который выглядит наиболее осмысленно, не беспокоясь по поводу необходимости определять все функции выше того места, где они используются.

Это называют «всплытием», и уточню: такое происходит только при function name(...){...}, если мы делаем var name = function(...){...} — мы просто создаём переменную, содержащую функцию, а переменная не всплывает. А можно ещё и так: var func1 = function func2(){} — тогда func2 всплывёт, а func1 — нет.

P. S. Да, я вижу, что перевод ).
Мне кажется, лучше и проще всего перенести обработчик mouseup (который «отпускает» линию) с canvas-а на body.

Это же вариант, о котором упомянули выше («выехал за границы, заехал обратно и рисуешь дальше»).
Проще всего юзерскрипт сделать.

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность