Как сделать линии HTML-холста более плавными для рисования уравнений - PullRequest
0 голосов
/ 15 июня 2019

Попытка сделать графическую утилиту. Я пытаюсь сделать линии более плавными. Я думаю, что проблема не в том, как я рисую линии на холсте, а в том, как я вычисляю координаты x и y.

HTML

<canvas></canvas>

JS

const canvas = document.querySelector('canvas');
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
let c = canvas.getContext('2d');

// set the graph origin to middle of the canvas
const originX = window.innerWidth / 2;
const originY = window.innerHeight / 2;

c.strokeStyle = `rgba(240, 40, 40, 0.9)`;
c.beginPath();
c.moveTo(originX, originY);

// calculate x and y values for the equation "x^3"
for (let x = -60; x < 60; x = x + 0.1) {
  let y = x**3;
  draw(x, y);
}

function draw(x, y) {
  // Calculated the canvas specific coordinates
  let calculatedX = originX + x * 30;
  let calculatedY = originY + -y * 30;
  c.lineCap = "round";
  c.lineWidth = 1;
  // draw the line
  c.lineTo(calculatedX, calculatedY);
  c.stroke();
}

Я попробовал решения из ответов на другой вопрос сглаживания линии, но они не сработали. Поэтому я думаю, что проблема в цикле for или draw function.

живой сайт: https://etasbasi.github.io/simple-grapher/dist/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...