Об’єкти з простих деталей в Processing

Тривимірні обєкти можна складати з трикутників Їх вершини обєднуються і це один з найпростіших способів створити тривимірний обєкт Також можна складати обєкти з чотирикутників З трикутників і чотирикутників зручно складати округлені смуги в тривимірному просторі

Як це робиться

Почніть з імпорту бібліотеки OpenGL і установки вікна здатністю 640 x 480 пікселів Перше, що ми зробимо – напишемо код для трикутника Наберіть цей фраент коду в функцію draw () Зверніть увагу, що у функцію beginShape () введено новий параметр, а в кожній ітерації циклу for додаються дві нові вершини

background( 255 ) lights()

pushMatrix()

translate( width/2, height/2, 0 ) rotateY( radians( frameCount ) )

pushMatrix()

rotateZ( radians( frameCount ) ) fill( 255, 0, 0 )

beginShape( TRIANGLE_STRIP ) for ( int i = 0 i &lt 20 i++ ) {

float x1 = cos( radians( i * 10 ) ) * 100 float y1 = sin( radians( i * 10 ) ) * 100

float x2 = cos( radians( i * 10 + 5 ) ) * ( 180 – i * 4 ) float y2 = sin( radians( i * 10 + 5 ) ) * ( 180 – i * 4 )

vertex( x1, y1, 0 ) vertex( x2, y2, 50 + i )

}

endShape() popMatrix()

Наступний фрагмент коду виводить на екран обєкт, складений з чотирикутних Код практично той же, за винятком параметра QUAD_STRIP у функції beginShape () і координат x, y і z вершин

pushMatrix()

translate( 0, 0, -100 )

rotateZ( radians( -frameCount ) ) fill( 255, 255, 0 )

beginShape( QUAD_STRIP )

for ( int i = 0 i &lt 20 i++ ) {

float x1 = cos( radians( i * 10 ) ) * ( 100 + i * 5 ) float y1 = sin( radians( i * 10 ) ) * ( 100 + i * 5 ) float x2 = cos( radians( i * 10 + 5 ) ) * 180

float y2 = sin( radians( i * 10 + 5 ) ) * 180

vertex( x1, y1, 0 )

vertex( x2, y2, 80 + i * 2 )

}

endShape() popMatrix()

popMatrix()

Якщо ви запустите цей приклад, ви побачите дві смуги навколо центру екрана Жовта смуга складена з чотирикутників, червона – з трикутників

У попередніх розділах ми застосовували функцію beginShape () для малювання довільних фігур Якщо ви не використовуєте спеціальний параметр в фтой функції, вершини будуть зєднані лініями в тому порядку, в якому ви їх вкажете у функції beginShape () Якщо ви введете параметр TRIANGLE_STRIP або QUAD_STRIP, вони будуть зєднані трикутниками або чотирикутниками У циклі for зазвичай додаються по дві вершини на кожну ітерацію

Джерело: Ян Вантомм, Processing 2: креативне програмування, переклад з англійської Олександри Мішутіної, Published by Packt Publishing Ltd, 2012, BIRMINGHAM – MUMBAI

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*