Форум программистов, компьютерный форум, киберфорум
JavaScript: HTML5 Canvas
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
 Аватар для Вадим77
1 / 1 / 0
Регистрация: 21.04.2016
Сообщений: 161

Отображение i счетчик в canvas

14.10.2018, 13:27. Показов 2624. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем. Как мне сделать так чтобы переменная i отображалась в canvas по середине как таймер линии?
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
var context; // переменная для хранения контекста
var container; // переменная для хранения canvas элемента
var currentAngle = 0; // текущее значение угла
var radius = 100; // радиус окружности
var baseX = 200; // x координата центра окружности
var baseY = 200; // y координата центра окружности
var i = 0;
window.onload = function() {
  container = document.getElementById("code"); // создаем canvas элемент 
  container.width = 400; // устанваливаем ширину
  container.height = 400; // устанавливаем высоту
 
  document.body.appendChild(container); // добавляем canvas в DOM
 
  context = container.getContext('2d'); // получаем конткест
  context.fillStyle = '#111111'; // устанавливаем цвет заливки в черный
  context.fillRect(0, 0, container.width, container.height); // собственно заливаем все черным
 
 var interval = setInterval(function() {
    // считаем косинус текущего значения угла
    // и умножаем на значение радиуса
    var vx = Math.cos(currentAngle) * radius;
 
    // считаем синус текущего значения угла
    // и умножаем на значение радиуса
    var vy = Math.sin(currentAngle) * radius;
 
    context.fillStyle = '#FF8228'; // устанавливаем цвет заливки в #FF8228
 
    context.fillRect(baseX + vx, baseY + vy, 2, 2);
 
    // считем новую позицию по x и y относительно центра окружности
    // и заливаем ее квадратиком высотой и шириной в 5 пикселей
    // увеличиваем значение угла
    currentAngle += 0.01;
    i++;
    if (i == 627)
    {
        clearInterval(interval); // Остановка интервала
    }
  }, 5)
}
HTML5
1
<canvas id="code"></canvas>
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.10.2018, 13:27
Ответы с готовыми решениями:

Отображение графиков в Canvas
Доброго времени суток, я снова вернулся сюда по вопросам адекватного отображения рисунков в своих программах. Теперь, когда проблема с...

Считывание из файла и отображение в Canvas
Столкнулся с проблемой, когда вывожу данные из файла, то вместо 0 считывает 4 и к любому символу будь то 5 или любой другой добавляется 4. ...

Canvas - не могу реализовать отображение графических элементов
Все привет! Некоторое время программировал на AS3, решил освоить программирование на Андроиде на примере игры Морской Бой, столкнулся с...

3
 Аватар для Omion
190 / 55 / 12
Регистрация: 19.05.2015
Сообщений: 352
18.10.2018, 10:59
Цитата Сообщение от Вадим77 Посмотреть сообщение
как таймер линии?
Типо полоса загрузки?
Цикл, цикл цикл
JavaScript
1
2
3
4
5
6
7
while(true){
action i;
if (i == 627)break;
i++;
 
 
}
1
 Аватар для Вадим77
1 / 1 / 0
Регистрация: 21.04.2016
Сообщений: 161
18.10.2018, 12:34  [ТС]
Omion, да типа полоса загрузки. Но я уже сделал. Вынес это число отдельно в блок div. Было бы интересно реализовать это в блоке canvas.
0
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
18.10.2018, 14:15
Лучший ответ Сообщение было отмечено Вадим77 как решение

Решение

https://devdocs.io/dom/canvas_... awing_text
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
var radius = 100,
  baseX = 200,
  baseY = 200,
  currentAngle = 0,
  i = 0,
  context, container;
 
window.onload = function() {
  container = document.getElementById("code");
  container.width = 400;
  container.height = 400;
 
  // document.body.appendChild(container); // добавляем canvas в DOM
 
  context = container.getContext('2d');
  context.fillStyle = '#111111';
  context.fillRect(0, 0, container.width, container.height);
 
  // настроить шрифт и выравнивание текста
  context.font = '48px sans-serif';
  context.textAlign = 'center';
  context.textBaseline = 'middle';
 
  var interval = setInterval(function() {
    var vx = Math.cos(currentAngle) * radius,
      vy = Math.sin(currentAngle) * radius;
 
    // закрасить старый текст
    context.fillStyle = '#111111';
    context.fillRect(150, 170, 100, 60);
 
    context.fillStyle = '#FF8228';
    context.fillRect(baseX + vx, baseY + vy, 2, 2);
 
    // вывести значение переменной `i`
    context.fillText(i, 200, 200);
 
    currentAngle += 0.01;
    i++;
    if (i == 627) {
      clearInterval(interval);
    }
  }, 5)
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.10.2018, 14:15
Помогаю со студенческими работами здесь

Canvas html5, как разместить черный пискель в центре canvas'a?
как разместить черный пискель в центре canvas'a?

Можно ли одной процедурой рисовать на Image.Canvas и Printer.Canvas
Здравствуйте, пожалуйста, подскажите можно ли одной процедурой рисовать на Image.Canvas и Printer.Canvas?

построить функцию y=kx+b (линейная функция) с помощью Vcart или canvas (form.canvas)
Надо построить функцию y=kx+b (линейная функция) с помощью Vcart или canvas (form.canvas)

Как добиться одинакового размера шрифта при выводе на Image.Canvas и Printer.Canvas
Здравствуйте! Подскажите, пожалуйста, как добиться одинакового размера шрифта при выводе на Image.Canvas и Printer.Canvas

Создать класс «счетчик», реализующий циклический счетчик, со следующей структурой
Создать класс «счетчик», реализующий циклический счетчик, со следующей структурой: -поле состояния счетчика; -методы для установки и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений в EXE. Здесь описаны базовые шаги для старта программирования с помощью CMake и MinGW. Для набора. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru