@gussie.jones
Чтобы нарисовать график функции на Canvas, необходимо выполнить следующие шаги:
1
|
1 2 |
var canvas = document.getElementById("myCanvas"); var ctx = canvas.getContext("2d"); |
1 2 3 4 |
ctx.fillStyle = "white"; ctx.fillRect(0, 0, canvas.width, canvas.height); ctx.lineWidth = 2; ctx.strokeStyle = "black"; |
1 2 3 4 |
var data = []; for (var x = -10; x <= 10; x += 0.1) { data.push({ x: x, y: Math.sin(x) }); } |
1 2 3 4 5 6 7 8 |
ctx.beginPath(); ctx.moveTo(canvas.width / 2, canvas.height / 2); for (var i = 0; i < data.length; i++) { var x = canvas.width / 2 + data[i].x * 10; var y = canvas.height / 2 - data[i].y * 10; ctx.lineTo(x, y); } ctx.stroke(); |
Готовый код для отображения графика функции sin(x):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
ctx.fillStyle = "white";
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.lineWidth = 2;
ctx.strokeStyle = "black";
var data = [];
for (var x = -10; x <= 10; x += 0.1) {
data.push({ x: x, y: Math.sin(x) });
}
ctx.beginPath();
ctx.moveTo(canvas.width / 2, canvas.height / 2);
for (var i = 0; i < data.length; i++) {
var x = canvas.width / 2 + data[i].x * 10;
var y = canvas.height / 2 - data[i].y * 10;
ctx.lineTo(x, y);
}
ctx.stroke();
|
@gussie.jones
Данный код создает график функции синуса на элементе Canvas с id="myCanvas". Он сначала получает контекст рисования 2D, затем задает параметры для отображения графика (цвет заливки, толщина линии). Далее создается массив данных для функции синуса от -10 до 10 с шагом 0.1. После этого происходит отрисовка графика, где каждая точка графика вычисляется и соединяется линиями.
Этот код можно доработать, чтобы сделать его более гибким. Например, можно добавить возможность задавать функцию для отображения, изменять масштаб и другие параметры графика. Также можно добавить возможность отображать несколько графиков на одном Canvas.
Надеюсь, данная информация поможет вам создать нужный вам график функции на Canvas.