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

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


=Описание<ref>[https://processing.org/examples/trianglestrip.html processing.org - Triangle Strip by Ira Greenberg]</ref>=
=Описание<ref>[https://processing.org/examples/trianglestrip.html processing.org - Triangle Strip by Ira Greenberg]</ref>=
Строка 94: Строка 92:
}
}
</syntaxhighlight>
</syntaxhighlight>
{{#set:
Код примера=
int x;
int y;
float outsideRadius = 150;
float insideRadius = 100;


void setup() {
  size(640, 360);
  background(204);
  x = width/2;
  y = height/2;
}
void draw() {
  background(204);
 
  int numPoints = int(map(mouseX, 0, width, 6, 60));
  float angle = 0;
  float angleStep = 180.0/numPoints;
   
  beginShape(TRIANGLE_STRIP);
  for (int i = 0; i <= numPoints; i++) {
    float px = x + cos(radians(angle)) * outsideRadius;
    float py = y + sin(radians(angle)) * outsideRadius;
    angle += angleStep;
    vertex(px, py);
    px = x + cos(radians(angle)) * insideRadius;
    py = y + sin(radians(angle)) * insideRadius;
    vertex(px, py);
    angle += angleStep;
  }
  endShape();
}
}}
=См.также=
=См.также=


Строка 101: Строка 133:
<references />
<references />


{{SEO
|Заголовок статьи=Processing: Кольцо из треугольников (Ира Гринберг) / Онлайн справочник - wikihandbk.com
|Ключевые слова=processing,Кольцо из треугольников (Ира Гринберг) ,Кольцо из треугольников (Ира Гринберг) в processing,Кольцо из треугольников (Ира Гринберг) пример , пример Кольцо из треугольников (Ира Гринберг) в processing
|Описание статьи=
|Изображение статьи для Open Graph=
|Адрес страницы для schemaNewsArticle=<nowiki>http://wikihandbk.com/wiki/Processing:Примеры/Кольцо из треугольников</nowiki>
|Изображение статьи для schemaNewsArticle=<nowiki></nowiki>
|Высота изображения статьи для schemaNewsArticle=
|Ширина изображения статьи для schemaNewsArticle=
|Дата публикации для schemaNewsArticle=2018-07-23
|Автор=Мякишев Е.А.
|Издатель=myagkij
|Логотип издателя для schemaNewsArticle=<nowiki>http://wikihandbk.com/ruwiki/images/6/61/Tech_geek_logo_1x.jpg</nowiki>
|Ширина логотипа издателя для schemaNewsArticle=60
|Высота логотипа издателя для schemaNewsArticle=45
}}
{{Навигационная таблица/Справочник языка Processing}}
{{Навигационная таблица/Справочник языка Processing}}
{{Навигационная таблица/Processing/Примеры}}
{{Навигационная таблица/Processing/Примеры}}
{{Навигационная таблица/Телепорт}}
{{Навигационная таблица/Телепорт}}

Версия от 02:13, 22 февраля 2023


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


Описание[1]

Генерирует замкнутое кольцо при помощи функции vertex() и режима beginShape(TRIANGLE_STRIP). Переменные outsideRadius и insideRadius отвечают, соответственно, за внешний и внутренний радиусы кольца.

Пример

int x;
int y;
float outsideRadius = 150;
float insideRadius = 100;

void setup() {
  size(640, 360);
  background(204);
  x = width/2;
  y = height/2;
}

void draw() {
  background(204);
  
  int numPoints = int(map(mouseX, 0, width, 6, 60));
  float angle = 0;
  float angleStep = 180.0/numPoints;
    
  beginShape(TRIANGLE_STRIP); 
  for (int i = 0; i <= numPoints; i++) {
    float px = x + cos(radians(angle)) * outsideRadius;
    float py = y + sin(radians(angle)) * outsideRadius;
    angle += angleStep;
    vertex(px, py);
    px = x + cos(radians(angle)) * insideRadius;
    py = y + sin(radians(angle)) * insideRadius;
    vertex(px, py); 
    angle += angleStep;
  }
  endShape();
}

{{#set: Код примера= int x; int y; float outsideRadius = 150; float insideRadius = 100;

void setup() {

 size(640, 360);
 background(204);
 x = width/2;
 y = height/2;

}

void draw() {

 background(204);
 
 int numPoints = int(map(mouseX, 0, width, 6, 60));
 float angle = 0;
 float angleStep = 180.0/numPoints;
   
 beginShape(TRIANGLE_STRIP); 
 for (int i = 0; i <= numPoints; i++) {
   float px = x + cos(radians(angle)) * outsideRadius;
   float py = y + sin(radians(angle)) * outsideRadius;
   angle += angleStep;
   vertex(px, py);
   px = x + cos(radians(angle)) * insideRadius;
   py = y + sin(radians(angle)) * insideRadius;
   vertex(px, py); 
   angle += angleStep;
 }
 endShape();

} }}

См.также

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