Це здається дивним, але, тим не менш, HTML5 підтримує малювання ліній, кіл, прямокутників та багатьох інших основних фігур, він не має нічого підходящого для малювання основної точки. Єдиний спосіб зробити це - імітувати точку з усього, що у вас є.
Тому в основному є 3 можливих рішення:
- намалювати точку як лінію
- точки малювання як багатокутник
- намалювати крапку як коло
У кожного з них є свої недоліки
Лінія
function point(x, y, canvas){
canvas.beginPath();
canvas.moveTo(x, y);
canvas.lineTo(x+1, y+1);
canvas.stroke();
}
Майте на увазі, що ми рухаємося в напрямку Південний Схід, і якщо це край, може виникнути проблема. Але ви також можете малювати в будь-якому іншому напрямку.
Прямокутник
function point(x, y, canvas){
canvas.strokeRect(x,y,1,1);
}
або більш швидким способом за допомогою fillRect, оскільки двигун візуалізації просто заповнить один піксель.
function point(x, y, canvas){
canvas.fillRect(x,y,1,1);
}
Коло
Одна з проблем із колами полягає в тому, що двигуну важче зробити їх
function point(x, y, canvas){
canvas.beginPath();
canvas.arc(x, y, 1, 0, 2 * Math.PI, true);
canvas.stroke();
}
та ж ідея, що і з прямокутником, яку ви можете досягти за допомогою заливки.
function point(x, y, canvas){
canvas.beginPath();
canvas.arc(x, y, 1, 0, 2 * Math.PI, true);
canvas.fill();
}
Проблеми з усіма цими рішеннями:
- важко відстежувати всі моменти, які ти збираєшся намалювати.
- коли ви збільшуєте зображення, це виглядає некрасиво.
Якщо вам цікаво: "Який найкращий спосіб намалювати крапку? ", Я б пішов із заповненим прямокутником. Тут ви можете побачити мій jsperf із порівняльними тестами .