Processing:Примеры/Круговая диаграмма: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
Строка 1: Строка 1:
{{Processing панель перехода}}
{{Processing панель перехода}}
{{Перевод от Сubewriter}}
{{Перевод от Сubewriter}}
{{Myagkij-редактор}}
{{Myagkij-редактор}}

Версия от 02:04, 27 августа 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Описание[1]

Этот скетч при помощи функции arc() генерирует круговую диаграмму на основе данных, хранящихся в массиве.

Пример

int[] angles = { 30, 10, 45, 35, 60, 38, 75, 67 };

void setup() {
  size(640, 360);
  noStroke();
  noLoop();  // делаем один цикл и останавливаемся
}

void draw() {
  background(100);
  pieChart(300, angles);
}

void pieChart(float diameter, int[] data) {
  float lastAngle = 0;
  for (int i = 0; i < data.length; i++) {
    float gray = map(i, 0, data.length, 0, 255);
    fill(gray);
    arc(width/2, height/2, diameter, diameter, lastAngle, lastAngle+radians(data[i]));
    lastAngle += radians(data[i]);
  }
}

{{#set: Код примера= int[] angles = { 30, 10, 45, 35, 60, 38, 75, 67 };

void setup() {

 size(640, 360);
 noStroke();
 noLoop();  // делаем один цикл и останавливаемся

}

void draw() {

 background(100);
 pieChart(300, angles);

}

void pieChart(float diameter, int[] data) {

 float lastAngle = 0;
 for (int i = 0; i < data.length; i++) {
   float gray = map(i, 0, data.length, 0, 255);
   fill(gray);
   arc(width/2, height/2, diameter, diameter, lastAngle, lastAngle+radians(data[i]));
   lastAngle += radians(data[i]);
 }

} }}

См.также

Внешние ссылки