Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.08.2022, 15:44
Аспирант
Отправить личное сообщение для IZUM Посмотреть профиль Найти все сообщения от IZUM
 
Регистрация: 21.08.2022
Сообщений: 57

Копирование фигур HTML
Как можно вместо построения одной фигуры в разных точках одной линии организовать построение нескольких одинаковых фигур расположенных, на заданном расстоянии друг от друга и на одной линии,
методом ЦИКЛА (например)
<!DOCTYPE html> 
<html lang="en"> 
<head> 
 <meta charset="utf-8"> 
 <title>Document</title> 
</head> 
<body style= "margin": 0;>
 <p>Геометрические фигуры </p> 

<canvas id="canvas" </canvas>

<script>
var
canv = document.getElementById(`canvas`),
ctx = canv.getContext(`2d`); // рисуем в 2d

canv.width = window.innerWidth;
canv.height = window.innerWidth;

//Code  Вывод надписей
ctx.fillStyle = `mageta`; //цвет 
//ctx.font = `20px Georgia`; // пиксели, название шрифта
ctx.font = `bold 20px Georgia`; // пиксели, название жирного шрифта
ctx.fillText("Копирование фигуры", 100, 20);

// Рисуем ромб
var arr = [50, 150, 250, 350, 450, 550];
console.log(arr); // вывод в консоль массива
console.log(arr[2]); // значение третьего элемента массива
console.log(arr.length); // количество элементов в массиве

ctx.fillStyle = `red`; //цвет внутри 
ctx.lineWidth = 1  //толщина линии
ctx.scale(2, 3); // изменение размеров фигуры путём растягивания и сжатия
ctx.rotate(10 * Math.PI/180); // поворот фигуры на 10 градусов

// РОМБ №0
 var x0 = arr[0] // координата x положения фигуры
console.log(x0); // вывод в консоль первого элемента массива
ctx.beginPath();
ctx.moveTo(x0, 25);
ctx.lineTo(x0 + 25, 50);
ctx.lineTo(x0 + 0, 75);
ctx.lineTo(x0 + -25, 50);
ctx.lineTo(x0, 25);
ctx.stroke(); 

// РОМБ №1
 var x1 = arr[1] // координата x положения фигуры
console.log(x1); // вывод в консоль ВТОРОГО элемента массива
ctx.beginPath();
ctx.moveTo(x1, 25);
ctx.lineTo(x1 + 25, 50);
ctx.lineTo(x1 + 0, 75);
ctx.lineTo(x1 + -25, 50);
ctx.lineTo(x1, 25);
ctx.stroke(); 

// РОМБ №2
 var x2 = arr[2] // координата x положения фигуры
console.log(x2); // вывод в консоль ТРЕТЬЕГО элемента массива
ctx.beginPath();
ctx.moveTo(x2, 25);
ctx.lineTo(x2 + 25, 50);
ctx.lineTo(x2 + 0, 75);
ctx.lineTo(x2 + -25, 50);
ctx.lineTo(x2, 25);
ctx.stroke(); 


</script>
</body> 
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 28.08.2022, 05:00
Аватар для Alikberov
Кандидат Javascript-наук
Отправить личное сообщение для Alikberov Посмотреть профиль Найти все сообщения от Alikberov
 
Регистрация: 16.08.2018
Сообщений: 109

<!DOCTYPE html> 
<html lang="en"> 
<head> 
 <meta charset="utf-8"> 
 <title>Document</title> 
</head> 
<body style= "margin": 0;>
 <p>Геометрические фигуры </p> 

<canvas id="canvas" </canvas>

<script>
var
canv = document.getElementById(`canvas`),
ctx = canv.getContext(`2d`); // рисуем в 2d

canv.width = window.innerWidth;
canv.height = window.innerWidth;

//Code  Вывод надписей
ctx.fillStyle = `mageta`; //цвет 
//ctx.font = `20px Georgia`; // пиксели, название шрифта
ctx.font = `bold 20px Georgia`; // пиксели, название жирного шрифта
ctx.fillText("Копирование фигуры", 100, 20);

// Рисуем ромб
var arr = [50, 150, 250, 350, 450, 550];
console.log(arr); // вывод в консоль массива
console.log(arr[2]); // значение третьего элемента массива
console.log(arr.length); // количество элементов в массиве

ctx.fillStyle = `red`; //цвет внутри 
ctx.lineWidth = 1  //толщина линии
ctx.scale(2, 3); // изменение размеров фигуры путём растягивания и сжатия
ctx.rotate(10 * Math.PI/180); // поворот фигуры на 10 градусов

// РОМБ №0..5
for(var i = 0; i < arr.length; ++ i) {
	var x0 = arr[i]; // координата x положения фигуры
	console.log(x0); // вывод в консоль первого элемента массива
	ctx.beginPath();
	ctx.moveTo(x0, 25);
	ctx.lineTo(x0 + 25, 50);
	ctx.lineTo(x0 + 0, 75);
	ctx.lineTo(x0 + -25, 50);
	ctx.lineTo(x0, 25);
	ctx.stroke(); 
}
</script>
</body> 
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 28.08.2022, 08:08
Аспирант
Отправить личное сообщение для IZUM Посмотреть профиль Найти все сообщения от IZUM
 
Регистрация: 21.08.2022
Сообщений: 57

отлично получилось ! Спасибо.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод ссылок в html коде Biglu Элементы интерфейса 4 20.11.2018 11:42
вывод сообщений со стены vk Радиойод Общие вопросы Javascript 0 15.11.2017 15:48
Диалог между HTML и внешним JS в контексте расширения GoogleChrome ev1lart Events/DOM/Window 0 26.04.2017 19:25
Преобразовать строку в HTML код (обратное htmlspecialchars из php) daslex Общие вопросы Javascript 71 23.08.2015 20:41
Передача кода HTML Владимир Седов Общие вопросы Javascript 2 12.04.2011 16:48