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

JavaScript

14
Подписчики
Отправить сообщение
hue = 285
Какой цвет?
Если Марти вернулся уже в альтернативную реальность, которую сам же и создал, куда делся Марти из альтернативной реальности? Если предположить, что он вернулся в прошлое, встретит ли он там самого себя?
Если ничего не путаю, Хайку позиционируется как очень быстрая.
Старый добрый 2011…

Хабр уже не торт :(
Не минусовал (даже возможности такой нет), но считаю, что разочарует.
Трейлер уже разочаровывает.

Атмосфера ЗВ не передана вообще никак, джедаев вообще стали считать мифом, Extended Universe убили, и на её останках пытаются что-то строить, причём идея нового сюжета не блещет новизной.

Имхо.
Эм, нет.
Я предлагаю понимание основ RGB и построение своих выводов на этом.
Единственное, что нужно помнить — это то, что (255, 255, 0) — жёлтый, (0, 255, 255) — бирюзовый (или как его назвать), а (255, 0, 255) — ярко-розовый.
Такие цвета, как (255, 0, 0) полностью очевидны.
Если ещё и понимать, что чем больше компоненты, тем цвет светлее — это уже вообще хорошо.

И, встречая, например, (255, 200, 200), вы можете с уверенностью сказать, что это розовый, или, (100, 100, 0) — жёлтый+чёрный. Или посложнее: (255, 100, 10) — оранжевый. Потому что смесь (255,0,0) и (255,255,0), т.е. красного и жёлтого. Вот и всё.

Ну и ещё можно сказать, что у серых цветов все компоненты одинаковы. И, встретив, например, (230, 235, 240), понятно, что это серый с небольшим уклоном в синий.

С Hex-цветами абсолютно та же история, только там 3 оттенка всего лишь хранятся в шестнадцатиричных числах. Например, #FF00AA — это (FF, 00, AA), т.е. (255, 0, 170).
Чуть-чуть потренировавшись, можно спокойно и RGB / Hex расшифровывать в уме.
Не с точностью до оттенка, конечно же, но достаточно близко.
Попробуйте поиграться с разными word-wrap, break-word и т.п., вдруг поможет.

И ещё, помнится, во времена IE6 плейсхолдеры реализовывали, просто изменяя value у текстовых полей, зачем накладывать див сверху? Критично, чтобы value был пустым, если в поле плейсхолдер?
Есть в книге Пекелиса «Твои возможности, человек» такая глава:
Скрытый текст

Продолжение гуглится.

Сам автор упоминает о «системе быстрого счёта», созданной цюрихским профессором математики Я. Трахтенбергом, а также книги «Система быстрого счёта по Трахтенбергу» Э. Катлера и Р. Мак-Шейна и «Техника счёта» А. С. Сорокина.

Также отмечается, что один из таких людей представлял разные числа разным цветом, и, смешивая числа особым образом, получал результат.
Всё пофиксил, благодарю. Добавил ещё один пример, теперь можно оценить соотношение прыгающих зайчиков и FPS :).

Сейчас очень многое изменяю, хочется сделать более общей и более функциональной (а ещё добавить WebGL-рендер), поэтому последние версии немного неюзабельны, а на сайте многое немного не работает. Думаю, к ноябрю закончу.
И, как ни странно, я впервые ощутил в себе параноика. До этого по большей части было всё равно.
Спасибо.
o.O
Критериев выбора нет, но было бы здорово, если вы напишите, почему ВЫ.

У меня тоже нет каких-то супердостоинств, которые бы ясно говорили, почему именно я.
Но мне было бы это очень интересно.

С удовольствием помогу тому, кто в итоге его получит :).

P.S. kompo, как вариант — выложить исходники на github и принимать Pull Request-ы.
Ах да, и забыл:
В-третьих, возможностей в svg намного больше, чем в канвасе, например, анимация, фильтры для изображений.

Анимацию в G2D я уже показал, в LibCanvas тоже есть, и в Fabric.
Фильтры в Fabric:
fabric.Image.fromURL('image.jpg', function(img) {
  img.filters.push(new fabric.Image.filters.Grayscale());
  img.applyFilters(canvas.renderAll.bind(canvas));
  canvas.add(img);
});

Фильтры в g2d:
var image = ctx.image('image.jpg', 10, 10);
image.filter('pixel', function(r, g, b){
 var mid = (r + g + b) / 3;
 return [mid, mid, mid, 1];
});

Тут пример с Grayscale, встроенных в G2D пока нет.

Да и вообще реализовать, в общем-то, несложно, в отличие от SVG есть прямой доступ к пикселям.
Ну это естественно.
LibCanvas, Fabric, Graphics2D, PaperJS хотя бы. Первое, что вспомнилось.
Они общего назначения, есть и специализированные.

Во-первых, потребовалось меньшее количество кода для создания на svg.

Сравниваем:
<rect x="10" y="10" width="200" height="200" fill="red"/>
<path d="M10,10 L200,200 L400,10" fill="blue"/>

Пример для canvas будет на Graphics2d, т.к. я её лучше всего знаю, да и там короче всех, пожалуй:
var rect = ctx.rect(10, 10, 200, 200, 'red');
// либо:
var rect = ctx.rect({ x: 10, y: 10, width: 200, height: 200, fill: 'red' });

var path = ctx.path([[10, 10], [200, 200], [400, 10]], 'blue');

А многие библиотеки (Fabric, например) и SVG-пути поддерживают.

Во-вторых, простота и удобство создания кода. У svg логика строится на отдельных объектах, их свойствах и методах. Например, чтобы определить объект под курсором, нужно создать обработчик события для данного объекта (circle для станций метро), в котором можно поменять его свойства — цвет, масштаб (на картинке для значка станции «Ходынское поле» применен метод scale) и др. У канваса логика отрисовки построена на перерисовке всей карты. И для выделения отдельных объектов нужно перерисовывать и масштабировать всю карту. Кроме этого, канвас не хранит отрисованные объекты в памяти, их нужно отдельно сохранять в переменных (в dbcartajs в объекте mflood) и самому следить за ними (добавлять, удалять). SVG-изображение хранит отрисованные объекты в DOM-модели и к ним можно обращаться напрямую.

Та-даам.
var station = ctx.circle({ cx: 50, cy: 50, radius: 10, fill: 'red', stroke: 'red 2px' });
station.on('mouseover', 'animate', 'stroke', 'blue', 1000);
station.on('mouseout', 'animate', 'stroke', 'red', 1000);

Вот так ещё можно:
station.on('mouseover', function(e){
  this.animate('stroke', 'blue', 1000);
  this.scale(1.3);
});

station.on('mouseout', function(e){
  this.animate({
    stroke: 'blue',
    scale: 1 / 1.3
  }, 1000);
});


В общем-то, на всех 4-х из мною перечисленных это спокойно реализуется.
Первые 3 «во-первых» легко решаются библиотеками для canvas.
Я придумал, давайте создадим массив пикселей, нарисуем там 2 прямые и поищем близко лежащие точки перебором всех пикселей.
Да, установилось, и даже запускается, но сразу же вылетает. iOS 6.0, iPod Touch 4.
Один вопрос. Совместимо ли с iOS 6?
Мне кажется, была где-то возможность для разработчиков откатиться до предыдущей версии.
Пока что — ценное замечание, но тем не менее. Пока что Tox неудобен.
Будем ждать.

Информация

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