Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.07.2021, 17:40
Новичок на форуме
Отправить личное сообщение для Иванasd2 Посмотреть профиль Найти все сообщения от Иванasd2
 
Регистрация: 07.05.2019
Сообщений: 7

Как нарисовать линию из объектов из точки А в точку Б с некоторым шагом?
Здравствуйте. Есть некоторый new Image() и координаты x1 y1 x2 y2. Как нарисовать в канвас линию от одной точки к другой с некоторым шагом используя эти объекты?
function drawLine() {
  par.forEach((i) => {
    par.forEach((j) => {
      const x1 = i.x;
      const y1 = i.y;
      const x2 = j.x;
      const y2 = j.y;
      const len = Math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2);
      const alpha = 1 - len / props.lineLen;
      if (len < props.lineLen) {
        for (let z = 0; z < len; z += props.lineStep) {
          const img = new Image();
          img.src = `face/${props.face[1]}.png`;
          ctx.drawImage(img, x1, y1, props.lineSize, props.lineSize);
        }
      }
    });
  });
}
Изображения:
Тип файла: jpg Screenshot from 2021-07-01 17-49-12.jpg (14.3 Кб, 5 просмотров)

Последний раз редактировалось Иванasd2, 01.07.2021 в 17:55.
Ответить с цитированием
  #2 (permalink)  
Старый 01.07.2021, 17:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Иванasd2,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #3 (permalink)  
Старый 01.07.2021, 18:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

canvas drawLine
Иванasd2,

<!DOCTYPE html>
<html>

<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
        canvas {
            border: 1px solid red;
        }
    </style>
</head>

<body>
    <canvas id="canvas" height="200" width="400"></canvas>
    <script>
        const canvas = document.getElementById('canvas');
        const ctx = canvas.getContext('2d');
        const image = new Image(60, 45);
        const drawLine = (image, from, to, num, ctx) => {
            for (let i = 0; i < num; i++) {
                let dx = from.x + (to.x - from.x) * i / num;
                let dy = from.y + (to.y - from.y) * i / num;
                ctx.drawImage(image, dx, dy, 60, 45);
            }
        }
        image.onload = _ => drawLine(image, {
            x: 1,
            y: 1
        }, {
            x: 370,
            y: 180
        }, 12, ctx)
        image.src = image.src = 'https://mdn.mozillademos.org/files/5397/rhino.jpg';
    </script>
</body>

</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по replace. Как заменить все точки в строке? Pluto Общие вопросы Javascript 14 21.04.2017 12:32
Как нарисовать график на javascript? Бобр Общие вопросы Javascript 21 30.03.2014 17:27
Как найти точки соприкосновения двух объектов в RaphaelJS Fatalityap Библиотеки/Тулкиты/Фреймворки 3 03.08.2012 16:33
Flot Как передать переменную в функцию отрисовки точки на графике Ren jQuery 0 20.06.2012 14:16
как нарисовать графические полосы? czp Общие вопросы Javascript 43 26.12.2011 15:33