- PVSM.RU - https://www.pvsm.ru -

«Паскалевская графика на HTML5» или «Что Opera сделала с Rainbow Dash»

Увидел на тематическом сайте, посвящённом сериалу My Little Pony [1] код на Turbo Pascal, использующий старинный модуль Graph и рисующий нескольких персонажей.

Код содержал только вызовы функций и комментарии, javascript отлично его парсил. Осталось только дописать свои графические функции.

Финальная версия [2]

var colors = ["#000000", "#0000AA", "#00AA00", "#00AAAA", "#AA0000", "#AA00AA", "#AA5500", "#AAAAAA", 
"#555555", "#5555FF", "#55FF55", "#55FFFF", "#FF5555", "#FF55FF", "#FFFF55", "#FFFFFF"];
function setcolor(colorIndex)
{
	ctx.strokeStyle = colors[colorIndex];
}
function line(x1, y1, x2, y2)
{
	ctx.beginPath();
	ctx.moveTo(x1, y1);
	ctx.lineTo(x2, y2);
	ctx.stroke();
	ctx.closePath();
}
function setlinestyle(p, t, width)
{
	ctx.lineWidth = width;
}

function setfillstyle(t, colorIndex)
{
	ctx.fillStyle = colors[colorIndex];
}

function ellipse(x, y, st, end, xrad, yrad)
{
	ctx.save();
	ctx.translate(x, y);
	ctx.scale(xrad, -yrad);
	ctx.beginPath();
	ctx.arc(0, 0, 1, st * Math.PI / 180.0, end * Math.PI / 180.0, false);	
	ctx.restore();
	ctx.stroke();
}

function fillellipse(x, y, xrad, yrad)
{
	ctx.save();
	ctx.translate(x, y);
	ctx.scale(xrad, yrad);
	ctx.beginPath();
	ctx.arc(0, 0, 1, 0, Math.PI * 2, true);
	ctx.fill();
	ctx.closePath();
	ctx.restore();
}

Вот что вышло [3]
На мою реализацию функции ellipse() плохо среагировала Opera:
«Паскалевская графика на HTML5» или «Что Opera сделала с Rainbow Dash»

Баг зарепортили.

Но я на этом не остановился, и результат можно наблюдать тут [2].

«Паскалевская графика на HTML5» или «Что Opera сделала с Rainbow Dash»

В данный момент думаю, как ещё всё это можно ускорить. Идеи?

Автор: Jedi_Knight


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/javascript/5187

Ссылки в тексте:

[1] My Little Pony: http://lurkmore.to/My_Little_Pony

[2] Финальная версия: http://dl.dropbox.com/u/46636530/mlp/dash.html

[3] Вот что вышло: http://dl.dropbox.com/u/6566435/Canvas/dash/dash.htm