Katerina1993
Новичок
Здравствуйте продолжаю тему реализация drawTriangle flash на html5. Я полностью разобралась, что такое drawTriangle во flash. Теперь пытаюсь перенести это в html5. Первый вопрос вот: Похожая функция drawTriangles(flash) на html5?
В первом вопросе я сделала только соединение трех вершин по x и y, если добавить больше точек ничего не происходит. Мне нужно чтобы пользователь мог сколько угодно точек добавлять для рисования треугольников. Отложила пока цикл и попыталась сделать обычным путем moveTo и lineTo.
1. vertices – это координаты
2. indices – это индексы вершин по которым происходит соединение (они ссылаются на массив vertices).
Как мне все это поместить в цикл? Вот код:
Код:
Результат выполнения скрипта 3 триугольника.
В первом вопросе я сделала только соединение трех вершин по x и y, если добавить больше точек ничего не происходит. Мне нужно чтобы пользователь мог сколько угодно точек добавлять для рисования треугольников. Отложила пока цикл и попыталась сделать обычным путем moveTo и lineTo.
1. vertices – это координаты
2. indices – это индексы вершин по которым происходит соединение (они ссылаются на массив vertices).
Как мне все это поместить в цикл? Вот код:
Код:
HTML:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>drawTriangle</title>
<script>
var canvas, ctx, img;
window.onload = function()
{
canvas = document.getElementById("drawingCanvas");
ctx = canvas.getContext("2d");
var vertices = [[100,100],[200,100],[300,100],[400,100],[500,100],[100,200],[200,200]];
var indices = [0,1,5,1,6,5,1,2,6];
var x = 20;
var y = 20;
ctx.beginPath();
ctx.moveTo(vertices[indices[0]][0]+x, vertices[indices[0]][1]+y);
ctx.lineTo(vertices[indices[1]][0]+x, vertices[indices[1]][1]+y);
ctx.lineTo(vertices[indices[2]][0]+x, vertices[indices[2]][1]+y);
ctx.closePath();
ctx.stroke();
ctx.beginPath();
ctx.moveTo(vertices[indices[3]][0]+x, vertices[indices[3]][1]+y);
ctx.lineTo(vertices[indices[4]][0]+x, vertices[indices[4]][1]+y);
ctx.lineTo(vertices[indices[5]][0]+x, vertices[indices[5]][1]+y);
ctx.closePath();
ctx.stroke();
ctx.beginPath();
ctx.moveTo(vertices[indices[6]][0]+x,vertices[indices[6]][1]+y);
ctx.lineTo(vertices[indices[7]][0]+x,vertices[indices[7]][1]+y);
ctx.lineTo(vertices[indices[8]][0]+x,vertices[indices[8]][1]+y);
ctx.closePath();
ctx.stroke();
}
</script>
</head>
<body>
<canvas id="drawingCanvas" style="background:#444444" width="400px" height="300px"></canvas><br>
</body>
</html>