понедельник, 5 декабря 2011 г.

globalCompositeOperation

Установка этого параметра в один из двенадцати вариантов, позволяет не только определять последовательность выдачи на экран  отрисованых элементов, но и также маскировать их полностью или частично, причем это могут быть любые объекты и кисти
  globalCompositeOperation = тип;  

тип - строка, из двенадцати возможных .

Этот код выводит все варианты композиций в виде выше показаного рисунка
var compositeTypes = [
  'source-over','source-in','source-out',
  'source-atop', 'destination-over',
  'destination-in','destination-out',
  'destination-atop','lighter',
  'darker','copy','xor'];

function draw(){
  for (i=0;i<compositeTypes.length;i++){
    var label = document
        .createTextNode(compositeTypes[i]);
    document.getElementById('lab'+i)
       .appendChild(label);
    var ctx = document
       .getElementById('tut'+i).getContext('2d');

    // draw rectangle
    ctx.fillStyle = "#09f";
    ctx.fillRect(15,15,70,70);

    // set composite property
    ctx.globalCompositeOperation
       = compositeTypes[i];
   
    // draw circle
    ctx.fillStyle = "#f30";
    ctx.beginPath();
    ctx.arc(75,75,35,0,Math.PI*2,true);
    ctx.fill();
  }
}
     

воскресенье, 4 декабря 2011 г.

Пример - scale



function draw() {
var ctx = document
.getElementById('canvas')
.getContext('2d');
ctx.strokeStyle = "#fc0";
ctx.lineWidth = 1.5;
ctx.fillRect(0,0,300,300);

// Uniform scaling
ctx.save()
ctx.translate(50,50);
drawSpirograph(ctx,22,6,5);

ctx.translate(100,0);
ctx.scale(0.75,0.75);
drawSpirograph(ctx,22,6,5);

ctx.translate(133.333,0);
ctx.scale(0.75,0.75);
drawSpirograph(ctx,22,6,5);
ctx.restore();

// Non uniform scaling (y direction)
ctx.strokeStyle = "#0cf";
ctx.save()
ctx.translate(50,150);
ctx.scale(1,0.75);
drawSpirograph(ctx,22,6,5);

ctx.translate(100,0);
ctx.scale(1,0.75);
drawSpirograph(ctx,22,6,5);

ctx.translate(100,0);
ctx.scale(1,0.75);
drawSpirograph(ctx,22,6,5);
ctx.restore();

// Non uniform scaling (x direction)
ctx.strokeStyle = "#cf0";
ctx.save()
ctx.translate(50,250);
ctx.scale(0.75,1);
drawSpirograph(ctx,22,6,5);

ctx.translate(133.333,0);
ctx.scale(0.75,1);
drawSpirograph(ctx,22,6,5);

ctx.translate(177.777,0);
ctx.scale(0.75,1);
drawSpirograph(ctx,22,6,5);
ctx.restore();

}
function drawSpirograph(ctx,R,r,O){
var x1 = R-O;
var y1 = 0;
var i = 1;
ctx.beginPath();
ctx.moveTo(x1,y1);
do {
if (i>20000) break;
var x2 = (R+r)*Math.cos(i*Math.PI/72)
- (r+O)*Math.cos(((R+r)/r)*(i*Math.PI/72))
var y2 = (R+r)*Math.sin(i*Math.PI/72)
- (r+O)*Math.sin(((R+r)/r)*(i*Math.PI/72))
ctx.lineTo(x2,y2);
x1 = x2;
y1 = y2;
i++;
} while (x2 != R-O && y2 != 0 );
ctx.stroke();
}

суббота, 3 декабря 2011 г.

Пример - rotate



function draw() {
  var ctx = document
                .getElementById('canvas')
                .getContext('2d');
  ctx.translate(75,75);
  for (i=1;i<6;i++){
    ctx.save();
    ctx.fillStyle = 'rgb('+(51*i)
               +','+(255-51*i)+',255)';
    for (j=0;j<i*6;j++){
    ctx.rotate(Math.PI*2/(i*6));
    ctx.beginPath();
    ctx.arc(0,i*12.5,5,0,Math.PI*2,true);
    ctx.fill();
    }
    ctx.restore();
  }
}

пятница, 2 декабря 2011 г.

Пример - translate



function draw() {
var ctx = document
.getElementById('canvas')
.getContext('2d');
ctx.fillRect(0,0,300,300);
for (i=0;i<3;i++) {
for (j=0;j<3;j++) {
ctx.save();
ctx.strokeStyle = "#9CFF00";
ctx.translate(50+j*100,50+i*100);
drawSpirograph(ctx,20*(j+2)/(j+1),
-8*(i+3)/(i+1),10);
ctx.restore();
}
}
}
function drawSpirograph(ctx,R,r,O){
var x1 = R-O;
var y1 = 0;
var i = 1;
ctx.beginPath();
ctx.moveTo(x1,y1);
do {
if (i>20000) break;
var x2 = (R+r)*Math.cos(i*Math.PI/72)
- (r+O)*Math.cos(((R+r)/r)*(i*Math.PI/72))
var y2 = (R+r)*Math.sin(i*Math.PI/72)
- (r+O)*Math.sin(((R+r)/r)*(i*Math.PI/72))
ctx.lineTo(x2,y2);
x1 = x2;
y1 = y2;
i++;
} while (x2 != R-O && y2 != 0 );
ctx.stroke();
}

четверг, 1 декабря 2011 г.

Магия Без'E

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

суббота, 5 ноября 2011 г.

Изобретатели гладких кривых

Кривы́е Безье́ были разработаны в 60-х годах XX века независимо друг от друга Пьером Безье из автомобилестроительной компании «Рено» и Полем де Кастельжо из компании «Ситроен», где применялись для проектирования кузовов автомобилей.



Несмотря на то, что открытие де Кастельжо было сделано несколько ранее Безье (1959), его исследования не публиковались и скрывались компанией как производственная тайна до конца 1960-х.

Впервые кривые были представлены широкой публике в 1962 году французским инженером Пьером Безье, который, разработав их независимо от де Кастельжо, использовал их для компьютерного проектирования автомобильных кузовов. Кривые были названы именем Безье, а именем де Кастельжо назван разработанный им рекурсивный способ определения кривых (алгоритм де Кастельжо).

Это открытие на сегодня один из важнейших инструментов систем автоматизированного проектирования и программ компьютерной графики

четверг, 3 ноября 2011 г.

Кисть <path>

Этот инструмент самый универсальный в формате SVG. С помощью него можно рисовать как закрытые фигуры, так и линии, причем все они имеют любой вид. Единственным ограничение - это использование координат без размерностей (чистых цифр).

вторник, 1 ноября 2011 г.

Кисти и и их свойства

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

понедельник, 24 октября 2011 г.

SVG-координаты

Для формата, как и для тэга canvas координаты задаются одинаково. Нулевой точкой или точкой отсчета считается верхний левый угол, а положительными направлениями для оси X - правое, и для оси Y - вниз, соответствено. Координаты объекта отображения могут иметь также и отрицательные координаты, при этом в зависимосте от рамки обзора они могут отображаться или нет. Еще обязательными атрибутами считаются ширина и высота, и они тоже могут принимать любые значения в том числе и отрицательные. Это позволяет выводить отображения объектов в инверсионном и перевернутом виде.

вторник, 18 октября 2011 г.

Пример - конкретика

Давай нарисуем что то типа флага и по порядку расскажем - как это было сделано. И начинаем мы с самого тэга svg. Обычный ни чем не привлекательный тэг, но со своими атрибутами, которые обязательны для нашего применения

пятница, 14 октября 2011 г.

вторник, 11 октября 2011 г.

Исправляем некорректность верстки SVG-файлов на Яру и ЖЖ

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

понедельник, 10 октября 2011 г.

SVG + Ярушка и ЖЖ

Ну вот наконец мы подошли к тому моменту как я все отображаю здесь так просто.

Для этого надо иметь две вещи - файл того что рисовать и место вставки ссылки на этот файл.

Начнем со второго. Есть много вариантов его исполнения, Но самый простой и допустимый здесь на Ярушке - это обыкновенный тэг , в котором ты передаешь любую фотку. Смотри ну вот так.

<img src="ссылка на файл SVG" />

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

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

Все. Переходим к тайнам самого формата.. т.е к созиданию.

среда, 5 октября 2011 г.

SVG и браузеры

Ну как впечатляют возможности формата.

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

вторник, 4 октября 2011 г.

А как на счет поиграть?

Поиграть можно прямо здесь. Это что то навроде крестиков ноликов, честно скопипащеное

понедельник, 3 октября 2011 г.

SVG. Начало

Ну как вам такое изобразие. И это не мало что можно рельно сделать с помощью формата SVG. Кстати рисунок тигра на первой страницы моего блога - самый настоящий SVG. Каково тебе это видить на обычном браузере.

среда, 28 сентября 2011 г.

CSS - cелекторы

Сразу скажу Тебе, мой дорогой читатель, что я не буду утомлять тебя этим длинным и занудным рассказом об всех вариантах возможных селекторов, которые стали сейчас априори основой всех инет - страниц. Их надо изучать. Исходно селекторы впервые нашли применение в блоках стилей и их файлах, и традиционно их было исходно всего три типа. Но с развитием инструментария, добавились дополнительные селекторы, их группировки , а так же селекторы вышли из под опеки CSS-стиля, и стали универсальным инструментом, для поиска в документах HTML, что и было продемонстрировано в моей заметки DOM2 наступил на jQuery.

вторник, 27 сентября 2011 г.

DOM2 наступил на jQuery

- и похоже окончательно раздавил этого монстра. Да да именно монстра который последние годы терроризировал весь инет своими сжатыми мегабайтами непонятного назначения и еще более непонятного содержания.
-- а что это за эта jQuery
Да эта такая штука которая практически зависает теперь во всех сайтах Рунета. Вот на Ярушке ее зачем то поставили.
-- а может она нужна?
Хорошая вещь я сам от нее балдел - было время, но меня подвело любопытство. Я полез в потроха как самый обычный любопытный мальчишка, чтобы посмотреть как это чудище устроено, и такое увидел, что после - начал искать альтернативу
--- ой как интересно, а ну расскажи я тоже хочу -
Потом , потом как нибудь. Лучше давай все же уделим время ее убийце. Это намного интереснее., чем монстр маниакального вида, но как всегда на глиняных ногах.

понедельник, 19 сентября 2011 г.

MARK - теги HTML5

HTML элемент (<mark>) представляет собой выделенный текст, т. е. фрагмента текста отмеченый в справочных целях, в связи с его значимость в конкретном контексте. Например, он может быть использован как результат поиска, для выделения каждого экземпляра найденого контекста.


Вот примерный элемент использующий свойство mark в тексте

Вот  примерный элемент
использующий <mark>свойство mark</mark>
в тексте

четверг, 25 августа 2011 г.

среда, 24 августа 2011 г.

Управление стилями. Синтаксис

Это достаточно новая и мало известное свойство стандартного CSS. Причем оно новое для российской аудитории, видимо наша "школа" не уделяет достаточного внимания этим новинкам интернет индустрии

пятница, 5 августа 2011 г.

AJAX- простая реаллизация.

Ну сколько не говори сыр - смешно не будет - простая реализация технологии AJAX наверно не самое главное, А вот сделать скрипт который устраивает меня и не тащит ни чего сложного ко мне в , чуть не сказал кровать.... тьфу тьфу тьфу... Но так что слабо сделать минимальный AJAX!!!

четверг, 4 августа 2011 г.

AJAX! Как много в этом звуке для ...

Технология Ajax - одна из последних новинок инета, так назывемая - хорошо забытое старое, и возродивщеся вновь, как птица Феникс из пепла. Что же это такое? и почему эта технология стала вновь так популярна, что современные проекты инета  сейчас практически без нее не обходятся??