Написання бібліотек Processing

Тепер, коли ви встановили шаблон бібліотеки, настав час засукати рукава і занять кодом Java Ми напишемо небольщой бібілотека для малювання шестикутників і зірок Нічого особливого, просто невеликий приклад того, як створюються бібліотеки

Приступимо

Якщо ви до цих пір не встановили шаблон бібліотеки Processing, зробіть це Процес описаний в попередньому прикладі, Установка шаблону бібліотеки Processing в Eclipse

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

Відкрийте папку src вашого проекту в Package Explorer в Eclipse Видаліть все, що там є Виділіть папку src і відкрийте меню File | New | Class для створення нового класу Java У полі package введіть URL вашого сайту в зворотному напрямку Це потрібно для іорта бібліотеки в скетч Processing У полі Name введіть MyLib, імя класу, який ми будемо писати Коли всі буедт зроблено, ви зможете створити новий файл якшо по кнопці Finish

Коли ви відкриєте файл, ви побачите, що Eclipse вже додав туди сякий код:

package bevormplus public class MyLib {

}

Почнемо з імпорту основний бібліотеки Processing в наш клас Java, оголошення змінних PApplet і String і написання конструктора для нашого класу Ми імпортували цю бібліотеку тому, що ви будемо використовувати в нашій бібліотеці деякі функції Processing Якщо ви не збираєтеся використовувати у своїй бібліотеці функції Processing, вам не потрібно імпортувати її Також ми реалізуємо інтерфейс PConstants, щоб використовувати константи Processing Код буде таким:

package bevormplus import processingcore*

public class MyLib implements PConstants { PApplet p

public final static String VERSION = &quot##libraryprettyVersion##" public MyLib( PApplet _p )

{

p = _p

}

}

Наш клас майже написаний, залишилося тільки написати методи для малювання шестикутника і зірки Наберіть наступний код після конструктора:

public void drawHexagon( float radius )

{

pbeginShape()

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

float x = pcos( i * THIRD_PI ) * radius float y = psin( i * THIRD_PI ) * radius pvertex( x, y )

}

pendShape( CLOSE )

}

public void drawStar( float radius )

{

float angle = PI / 5

pbeginShape()

for ( int i = 0 i &lt 10 i++ ) { float x, y

if ( i % 2 == 0 ) {

x = pcos( i * angle ) * radius y = psin( i * angle ) * radius

} else {

x = pcos( i * angle ) * radius/2

y = psin( i * angle ) * radius/2

}

pvertex( x, y )

}

pendShape( CLOSE )

}

Ми закінчили написання нашої бібліотеки і тепер потрібно її скомпілювати Клікніть play у вкладці Ant, Так, як у попередньому прикладі Якщо все пройде добре, ви увіте на консолі в нижній частині вікна повідомлення BUILD SUCCESSFUL Якщо сталася помилка, ви не побачите повідомлення BUILD SUCCESSFUL і вам доведеться голосити повідомлення на консолі, щоб знайти помилку Вони допоможуть вам зрозуміти, що пішло не так

Eclipse скомілірует бібліотеку, згенерує документацію та створить невеликий веайт для вашої бібліотеки По ходу справи Eclipse також встановить версію бібліотеки в папку libraries вашого Скетчбук Якщо ви тепер відкриєте Processing, ви побачите, що ви можете імпортувати бібліотеку MyLib, імпортувати її в скетч і набрати в PDE наступний код:

import bevormplus* MyLib m

void setup()

{

size( 640, 480 )

smooth()

m = new MyLib( this )

}

void draw()

{

background( 0 )

fill( 255, 255, 0 )

noStroke()

translate( 200, 240 )

mdrawHexagon( 100 )

translate( 240, 0 )

mdrawStar( 100 )

}

Коли ви запустите скетч, ви побачите чорне вікно з двома жовтими фігурами, як на цьому скріншоті:

Як це працює

Ми почали зі створення нового класу і імпорту основний бібліотеки Processing Їм-поіровав цю бібліотеку ми отримали можливість використовувати в нашій бібліотеці всі функції Processing Також ми реалізували інтерфейс PConstants Так ми отримали можливість використовувати в нашій бібліотеці всі константи Processing Це виявилося дуже зручно, тому що для малювання фігур нам знадобилися постійні PI, THIRD_PI і CLOSE

Якщо ми хочемо створити в нашому скетчі обєкт MyLib, ми записуємо m = new MyLib (this) у функції setup () Ключове слово this – це посилання на головний обєкт PApplet Ми повинні пропустити його через конструктор, щоб використовувати його У конструкторі ми присвоюємо обєкт PApplet (_p) внутрішньому обєкту PApplet (p)

public MyLib( PApplet _p )

{

p = _p

}

Якщо ми хочемо використовувати в нашій бібліотеці функції Processing, нам потрібно викликати їх через обєкт PApplet Так, якщо в звичайному скетчі ми пишемо vertex (x, y) тут ми повинні записати pvertex (x, y).

Коли ви клацніть по кнопці play у вкладці Ant, Eclipse скомпілює ваш код у бібліотеку Він також збере всі файли в потрібні папки, згенерує докуменатацію і здасть невеликий сайт вашої бібліотеки Ви найтете все це в папці для поширення вашого проекту Під час цього процесу Eclipse встановить бібліотеку в папку з бібліотеками у вашому Скетчбук Processing Це дуже зручно, тому що ви негайно зможете відкрити Processing і протестувати свою бібліотеку

Джерело: Ян Вантомм, 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>

*

*