Turinys:
- 1 žingsnis: perskaitykite vaizdą
- 2 veiksmas: su vaizdu susijusios funkcijos
- 3 žingsnis: muzikos įkėlimas, atkūrimas ir sustabdymas
- 4 žingsnis: muzikos greičio valdymas
- 5 veiksmas: vaizdo įrašų atkūrimas ir sustabdymas
- 6 veiksmas: vaizdo įrašo greičio valdymas
- 7 veiksmas: bendrų įvykių apdorojimas
- 8 veiksmas: išsamus pavyzdys-muzikos klaviatūra
- 9 žingsnis: išsamus pavyzdys-1 muzikos paletė
- 10 veiksmas: išsamus pavyzdys-2 muzikos paletė (atnaujinta versija)
- 11 veiksmas: santykinės garso ir vaizdo valdymo funkcijos
- 12 žingsnis: Santykiniai rodmenys:
- 13 žingsnis: šaltinis
Video: Įdomios apdorojimo programavimo gairės dizaineriui-medijos įkėlimas ir įvykis: 13 žingsnių
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:49
Apdorojant galima įkelti daug išorinių duomenų, tarp kurių yra trys dažniausiai naudojami tipai. Tai yra vaizdas, garsas ir vaizdo įrašas atskirai.
Šiame skyriuje kalbėsime apie tai, kaip išsamiai įkelti garsą ir vaizdo įrašą kartu su įvykiais. Galų gale galite sukurti savo muzikos klaviatūrą ar muzikos paletę.
1 žingsnis: perskaitykite vaizdą
Prieš pradėdami, pažvelkime į vaizdo įkėlimo būdą.
2 veiksmas: su vaizdu susijusios funkcijos
Prieš naudodami šias funkcijas, turime sukurti vaizdo objektą per PImage. Tada mes galime naudoti šias funkcijas, kad apibrėžtume visų rūšių vaizdo savybes.
Prieš paleisdami programą, nepamirškite išsaugoti vaizdo šaltinių duomenų faile.
3 žingsnis: muzikos įkėlimas, atkūrimas ir sustabdymas
Toliau mes pradedame oficialiai pristatyti jums muzikos skambėjimą. Labai panašus į vaizdų įkėlimą, pradžioje turite deklaruoti garso objektą. Toliau pateiktame pavyzdyje galite remtis tikra gramatika.
Kodo pavyzdys (10-1):
[cceN_cpp theme = "aušra"] importo apdorojimas.garsas.*;
SoundFile garsas;
void setup () {
dydis (640, 360);
fonas (255);
garsas = naujas „SoundFile“(tai, „1.mp3“);
}
void draw () {
}
anuliuoti raktą Paspaustas () {
//Paleisti garsą
jei (raktas == 'p') {
sound.play ();
}
// Sustabdyti garsą
if (raktas == 's) {
sound.stop ();
}
} [/cceN_cpp]
Paruošimas:
Pats apdorojimas neturi jokios garso bibliotekos. Jūs turite jį atsisiųsti patys. Taigi, prieš rašydami kodą, geriau atlikite šiuos veiksmus.
Pridėti biblioteką prie apdorojimo. Čia yra įprasta praktika. Meniu juostoje pasirinkite „Įrankis“- „Pridėti įrankį“, tada pereikite prie „Bibliotekos“. Įveskite pagrindinius bibliotekos žodžius į paieškos stulpelį, kad galėtumėte tiesiogiai atsisiųsti ir įdiegti.
Tačiau jei šią funkciją naudojame savo šalyje (Kinijoje), negalime jos atsisiųsti tiesiogiai prijungę žiniatinklį. Turime paleisti VPN. Nors pradėsime, bus nestabilių sąlygų. Taigi jūs turite būti kantrūs, kad išbandytumėte kelis kartus. Tai patogiausias pakrovimo būdas. Jei negalite įdiegti, turite atsisiųsti iš oficialios svetainės naudodami vadovą. (https://processing.org/reference/libraries/) Kadangi rankinis diegimo metodas yra labai sudėtingas, mes jį toliau aptarsime kitame skyriuje.
Exaplain kodas:
Garso biblioteka gali tinkamai veikti pasibaigus paruošimui. Įveskite aukščiau pateiktą kodą, spustelėkite Vykdyti, tada jis veiks. Paspauskite klavišą „P“, kad paleistumėte muziką, „S“, jei norite sustabdyti muziką.
Jei ji pripratusi prie programos, pirmiausia turime ją įkelti. Pradžioje turime pridėti sakinį „importuoti apdorojimą.garsas.*“. „importas“yra raktinis žodis, reiškiantis pakrovimą pažodžiui. Prie „importuoti“pridėkite bibliotekos pavadinimą, tada ji įkelia biblioteką. Uodega paprastai seka „*“ženklą, todėl į programą bus įkeliamos visos su biblioteka susijusios klasės, nepridedant jų po vieną rankiniu būdu.
Antrame sakinyje „SoundFile sound;“paskelbtas garso objektas. „SoundFile“yra panašus į „PImage“.
Funkcijų sąrankoje „sound = new SoundFile (tai,„ 1.mp3 “);“naudojamas objektui sukurti ir jo skaitymo keliui apibrėžti. Čia mes iš tikrųjų jau pradėjome naudoti naują „Class“koncepciją. Šiuo metu mes apie tai nediskutuojame. Turime tik žinoti, kad tai fiksuotas rašymo metodas, o paskutinis parametras yra muzikos šaltinio adreso užpildymas.
Tarp „KeyPressed“() įvykių „sound.play ()“ir „sound.stop ()“santykinai veikia kaip grojimo ir sustabdymo efektas. "". viduryje nurodo nario funkciją, kuri leidžia ir sustabdo garso objektus. Nario funkciją galime laikyti objekte esančia funkcija. Tai priklauso šiam objektui, kuris yra apibrėžtas iš anksto. Vėliau, kai reikia paleisti kelis garso objektus, už santykinio kintamojo pavadinimo turime pridėti tik „.play ()“.
Garso šaltiniai turi būti saugomi duomenų faile pagal tą patį eskizo failo katalogą (su pde priesaga). Jei jo nėra, galite jį sukurti rankiniu būdu.
Nepamirškite parašyti funkcijų piešimo. Nors nepiešėte jokios grafikos, būtina sėkmingai paleisti muziką.
Aukščiau aprašyta procedūra atrodo gana sudėtinga, tačiau jums reikia pridėti tik kelis kodo sakinius, tada galėsite realizuoti grojimo funkciją. Tai labai patogu.
Apdorojimas palaiko įprastus garso formatus, tokius kaip mp3, wav, ogg ir kt.
4 žingsnis: muzikos greičio valdymas
Toliau pateikti pavyzdžiai taps labai įdomūs. Apdorojimas suteikė kai kurias funkcijas, kurios gali valdyti muzikos grojimo greitį. Tuo pačiu metu tonai keisis atsižvelgiant į muzikos grojimo greitį. Kai valdome pelę, ji sukurs labai psichodelinį efektą.
Vaizdo įrašų svetainė:
Kodo pavyzdys (10-2):
[cceN_cpp theme = "aušra"] importo apdorojimas.garsas.*;
SoundFile garsas;
void setup () {
dydis (640, 360);
fonas (255);
garsas = naujas „SoundFile“(tai, „1.mp3“);
}
void draw () {
plūdės greitis = peleX/(plūdė) plotis * 3;
sound.rate (greitis);
plūdė vol = mouseY/(plūdė) aukštis * 4;
garsas.amp (tūris);
}
anuliuoti raktą Paspaustas () {
//Paleisti garsą
jei (raktas == 'p') {
sound.play ();
}
// Sustabdyti garsą
if (raktas == 's) {
sound.stop ();
}
} [/cceN_cpp]
Kodas Paaiškinkite:
Funkcija.rate () kontroliuoja garso atkūrimo greitį. Skliaustuose esanti vertė lemia greitą ir lėtą grojimo greitį. Kai vertė yra 1, grojimo greitis yra normalus. Kai jis yra už 1, tada pagreitinkite; kol jis yra mažesnis nei 1, tada sulėtinkite greitį.
Funkcija.amp () valdo garso stiprumą. Skliaustuose esanti vertė nustato tūrio vertę. Kai jis yra 1, garsumo vertė yra normali. Kai jis yra didesnis nei 1, padidinkite garsumą; kol jis yra mažesnis nei 1, tada sumažinkite garsumą.
Čia mes sukūrėme du vietinius kintamuosius greitį ir tūrį kaip parametrus, kuriuos reikia įkelti. Todėl pelės horizontali koordinatė pakeis muzikos toną, o vertikali koordinatė - muzikos garsumą.
5 veiksmas: vaizdo įrašų atkūrimas ir sustabdymas
Apdorojant vaizdo įrašų įkėlimas yra panašus į garso įkėlimą. Pirmiausia turite atsisiųsti vaizdo įrašų biblioteką. (https://processing.org/reference/libraries/video/index.html)
Kodo pavyzdys (10-3):
[cceN_cpp theme = "dawn"] importo apdorojimas.video.*;
Kino filmas;
void setup () {
dydis (640, 360);
fonas (0);
mov = naujas filmas (tai, "1.mov");
}
void movieEvent (filmo filmas) {
mov.read ();
}
void draw () {
vaizdas (mov, 0, 0, 640, 360);
}
anuliuoti raktą Paspaustas () {
jei (raktas == 'p') {
mov.play ();
}
if (raktas == 's) {
mov.stop ();
}
jei (raktas == 'd') {
mov.pause ();
}
} [/cceN_cpp]
Vaizdo įrašo ekrano kopija:
Kodas Paaiškinkite:
Pirmasis sakinys „importuoti apdorojimą. Vaizdo įrašą.*;“Naudojamas vaizdo įrašų bibliotekai įkelti.
Antrasis sakinys „Movie mov;“naudojamas vaizdo objektui deklaruoti. Tarp jų „Filmo“funkcija yra panaši į „PImage“.
Funkcijų sąrankoje „mov = new Movie“(tai, „1.mov“); “sukuria objektą ir nustato jo skaitymo kelią. Paskutinis parametras užpildomas vaizdo šaltinio adresu.
Behine sąranka, movieEvent reiškia vaizdo įvykį. Jis naudojamas vaizdo informacijai atnaujinti ir skaityti. „mov.read ()“tuo atveju reiškia skaitymą.
Išskyrus vaizdų rodymą, funkcinis vaizdas taip pat gali rodyti vaizdo įrašą. Vaizdo objektą galime laikyti dinamišku vaizdu. Pirmuoju parametru užpildome vaizdo objekto kintamąjį. Antrasis ir trečiasis parametrai yra vaizdo įraše nubrėžta horizontali ir vertikali koordinatė. Ketvirtasis ir penktasis parametrai lemia vaizdo rodymo ilgį ir plotį.
Funkcija.play () reiškia žaisti. Funkcija.stop () reiškia sustabdyti ir iš naujo nustatyti vaizdo įrašą. Funkcija.pause () reiškia pauzę. Jis nutraukia dabartinį grojimą, kuris tęsis tol, kol bus iškviesta funkcija.play ().
6 veiksmas: vaizdo įrašo greičio valdymas
Kodo pavyzdys (10-4):
[cceN_cpp theme = "dawn"] importo apdorojimas.video.*;
Kino filmas;
void setup () {
dydis (640, 360);
fonas (0);
mov = naujas filmas (tai, „tranzitas.mov“);
}
void movieEvent (filmo filmas) {
mov.read ();
}
void draw () {
vaizdas (mov, 0, 0, plotis, aukštis);
float newSpeed = mouseX/(plūdė) plotis * 4;
mov.speed (newSpeed);
}
anuliuoti raktą Paspaustas () {
jei (raktas == 'p') {
mov.play ();
}
if (raktas == 's) {
mov.stop ();
}
jei (raktas == 'd') {
mov.pause ();
}
}
[/cceN_cpp]
Kodas Paaiškinkite:
Funkcija.speed () gali būti naudojama vaizdo įrašo atkūrimo greičiui valdyti. Kai parametro reikšmė yra 1, grojimo greitis yra normalus. Kai vertė viršija 1, paspartinkite; kol jis yra mažesnis nei 1, tada sulėtinkite greitį.
Kadangi sukūrėme vietinį kintamąjį newSpeed ir importavome jį į funkciją setSpeed (), pelės koordinatė tiesiogiai paveiks vaizdo įrašo atkūrimo greitį.
Jei norite daugiau pavyzdžių apie vaizdo įrašus, galite kreiptis į Bibliotekos - vaizdo įrašas bylų bibliotekoje.
7 veiksmas: bendrų įvykių apdorojimas
Anksčiau mes pristatėme tik „keyPressed“() įvykį. Jis bus suaktyvintas paspaudus klaviatūrą. Toliau mes jums pristatysime kitus įprastus apdorojimo įvykius.
Pirmiau minėtų įvykių naudojimas yra panašus į „KeyPressed“. Jie neturi kodo rašymo sekos. Kitaip tariant, nesvarbu, kokį įvykį įvedėte prieš ar po funkcijos nustatymo, gausite tą patį rezultatą. Vykdymo nurodymas yra susijęs tik su paties įvykio paleidimo sąlyga. Tik įvykdžius sąlygą, jis bus įvykdytas. Visi aukščiau aprašyti įvykiai yra labai lengvai suprantami. Jums tereikia atlikti nedidelį eksperimentą, tada galėsite greitai suvokti jų naudojimą.
Įvykių srautas
Mes galime naudoti pavyzdį, kad žinotume įvykių vykdymo tvarką.
Kodo pavyzdys (10-5):
[cceN_cpp theme = "dawn"] negaliojanti sąranka () {
frameRate (2);
println (1);
}
void draw () {
println (2);
}
void mousePressed () {
println (3);
}
void mouseMove () {
println (4);
}
void mouseReleased () {
println (5);
}
anuliuoti raktą Paspaustas () {
println (6);
}
void keyReleased () {
println (7);
} [/cceN_cpp]
Kodas Paaiškinkite:
Funkcijų sąrankoje funkcija frameRate () nustatė, kad programos veikimo greitis yra 2 kadrai per sekundę. Sumažinus kadrų dažnį, galime padėti stebėti konsolės išvestį, jei suaktyvinti įvykiai iš karto būtų užteršti naujais duomenimis.
Pabandykite pajudinti pelę, spustelėkite pelę, atleiskite pelę ir stebėkite išvesties rezultatą. Susipažinkite su įvykio vykdymo tvarka per println.
Verta atkreipti dėmesį į tai, kad piešimo funkcijų negalima įrašyti į kitus įvykius, išskyrus funkcijų piešimą, arba jos negalima rodyti. Jei norime valdyti grafinių komponentų slėpimą ir rodymą per tokius įvykius kaip „KeyPressed“, galime apsvarstyti galimybę sukurti „bool“kintamąjį kaip vidutinį.
Renginiai bus vykdomi eilės tvarka. Tik tada, kai bus įdiegtas visas dabartinio įvykio kodas, jis įvykdys kodą kitame įvykyje.
8 veiksmas: išsamus pavyzdys-muzikos klaviatūra
Kartu su naujai suvoktais įvykiais galime įtraukti naują programą į savo programą. Be to, tik per kelias minutes galime lengvai analogizuoti muzikos klaviatūrą.
Vaizdo įrašų svetainė:
Kodo pavyzdys (10-6):
[cceN_cpp theme = "aušra"] importo apdorojimas.garsas.*;
Garso failo garsas1, garsas2, garsas3, garsas4, garsas5;
loginis raktas1, raktas2, raktas3, raktas4, raktas5;
void setup () {
dydis (640, 360);
fonas (255);
noStroke ();
sound1 = naujas SoundFile (tai, "do.wav");
sound2 = naujas SoundFile (tai, "re.wav");
garsas3 = naujas garso failas (tai, "mi.wav");
sound4 = naujas SoundFile (tai, "fa.wav");
sound5 = naujas SoundFile (tai, "so.wav");
}
void draw () {
fonas (255, 214, 79);
rectMode (CENTRAS);
plūdė w = plotis * 0,1;
plūdė h = aukštis * 0,8;
if (1 raktas) {
užpildyti (255);
} Kitas {
užpildyti (238, 145, 117);
}
tiesus (plotis/6, aukštis/2, w, h);
if (raktas2) {
užpildyti (255);
} Kitas {
užpildyti (246, 96, 100);
}
tiesus (plotis/6 * 2, aukštis/2, w, h);
if (3 klavišas) {
užpildyti (255);
} Kitas {
užpildyti (214, 86, 113);
}
tiesus (plotis/6 * 3, aukštis/2, w, h);
if (4 klavišas) {
užpildyti (255);
} Kitas {
užpildyti (124, 60, 131);
}
tiesus (plotis/6 * 4, aukštis/2, w, h);
if (5 raktas) {
užpildyti (255);
} Kitas {
užpildyti (107, 27, 157);
}
tiesus (plotis/6 * 5, aukštis/2, w, h);
}
anuliuoti raktą Paspaustas () {
jei (raktas == 'a') {
sound1.play ();
raktas1 = tiesa;
}
if (raktas == 's) {
sound2.play ();
raktas2 = tiesa;
}
jei (raktas == 'd') {
sound3.play ();
raktas3 = tiesa;
}
if (raktas == 'f') {
sound4.play ();
raktas4 = tiesa;
}
if (raktas == 'g') {
sound5.play ();
raktas5 = tiesa;
}
}
void keyReleased () {
if (raktas == 'a') {
raktas1 = klaidinga;
}
if (raktas == 's) {
raktas2 = klaidinga;
}
jei (raktas == 'd') {
raktas3 = klaidingas;
}
if (raktas == 'f') {
raktas4 = klaidinga;
}
if (raktas == 'g') {
raktas5 = klaidinga;
}
} [/cceN_cpp]
Kodas Paaiškinkite:
Turime sukurti kelis garso objektus, kad galėtume perskaityti santykinę garso informaciją, kad būtų galima paleisti skirtingus garsus, kai suaktyvinami skirtingi klavišai.
Čia mes naudojame naują įvykio raktąReleased (). Šio įvykio funkcija yra atkurti pradinę klaviatūros spalvą. Atleidus raktą, jis bus suaktyvintas.
Galvoje nurodytos 5 loginės vertės naudojamos raktų būsenai aptikti.
9 žingsnis: išsamus pavyzdys-1 muzikos paletė
Be klaviatūros įvykio, pelės įvykis yra geras dalykas, kurį turime lanksčiai naudoti. Šis pavyzdys yra skirtas sukurti muzikos paletę, tarp kurios panaudojome du su pele susijusius įvykius.
Vaizdo įrašų svetainė:
Kodo pavyzdys (10-7):
[cceN_cpp theme = "aušra"] importo apdorojimas.garsas.*;
Garso failo garsas1, garsas2, garsas3, garsas4, garsas5;
loginis isDragging;
void setup () {
dydis (640, 360);
fonas (255, 214, 79);
noStroke ();
garsas1 = naujas garso failas (tai, "do.wav");
sound2 = naujas SoundFile (tai, "re.wav");
garsas3 = naujas garso failas (tai, "mi.wav");
sound4 = naujas SoundFile (tai, "fa.wav");
sound5 = naujas SoundFile (tai, "so.wav");
}
void draw () {
if (isDragging) {
užpildyti (107, 27, 157, 100);
elipsė (mouseX, mouseY, 16, 16);
}
}
void mouseDragged () {
isDragging = tiesa;
if (mouseX> 100 && mouseX <105) {
sound1.play ();
}
if (mouseX> 200 && mouseX <205) {
sound2.play ();
}
if (mouseX> 300 && mouseX <305) {
sound3.play ();
}
if (mouseX> 400 && mouseX <405) {
sound4.play ();
}
if (mouseX> 500 && mouseX <505) {
sound5.play ();
}
}
void mouseReleased () {
isDragging = klaidinga;
} [/cceN_cpp]
Kodas Paaiškinkite:
Tikimės, kad tik tada, kai paspausime pelę ir ją nutempėme, galėsime piešti paveikslėlius. Taigi, norėdami gauti dabartinę būseną, turime sukurti loginį kintamąjį isDragging.
Vilkiant pelę, „isDragging“tampa tikra verte, todėl bus vykdomos piešimo funkcijos „Draw“. Tai paliks pėdsakus ekrane. Kai paleidžiame pelę, isDragging tampa klaidinga reikšme. Taigi piešimo funkcijos funkcijų piešinyje nustos vykdyti.
Mes sukūrėme keletą paleidimo sąlygų pelės vilkimo atveju. Pavyzdžiui, kai pelės horizontali koordinatė yra tarp 100 ir 105 pikselių, muzika bus leidžiama automatiškai. Dėl to ekranas sukūrė keletą nematomų eilučių. Tik jei pelė praeis per tam tikras sritis, ji suaktyvins santykinę muziką.
10 veiksmas: išsamus pavyzdys-2 muzikos paletė (atnaujinta versija)
Aukščiau pateikto pavyzdžio poveikis jau yra pakankamai geras. Bet jei atidžiai stebėsime, rasime daug problemų. Pavyzdžiui, kai pelė juda labai greitai, ji kiekvieną kartą judėdama paliks apvalų tašką ekrane. Tai nėra nuosekli tiesi linija. Tuo tarpu tai taip pat sukelia tam tikrą muzikos nutekėjimą. Kai pelė juda labai lėtai, eidama per padėtį, kai horizontali koordinatė yra tarp 100 ir 105, ji per labai trumpą laiką transliuos muziką kelis kartus, o tai sukels užstrigimo jausmą. Visas šias problemas galime išspręsti toliau pateiktame pavyzdyje.
Vaizdo įrašus galite žiūrėti žemiau esančioje nuorodoje:
v.qq.com/x/page/w03226o4y4l.html
Kodo pavyzdys (10-8):
[cceN_cpp theme = "aušra"] importo apdorojimas.garsas.*;
Garso failo garsas1, garsas2, garsas3, garsas4, garsas5;
loginis isDragging;
void setup () {
dydis (640, 360);
fonas (255, 214, 79);
noStroke ();
sound1 = naujas SoundFile (tai, "do.wav");
sound2 = naujas SoundFile (tai, "re.wav");
garsas3 = naujas garso failas (tai, "mi.wav");
sound4 = naujas SoundFile (tai, "fa.wav");
sound5 = naujas SoundFile (tai, "so.wav");
}
void draw () {
if (isDragging) {
insultas (107, 27, 157, 100);
smūgisSvoris (10);
linija (mouseX, mouseY, pmouseX, pmouseY);
}
}
void mouseDragged () {
isDragging = tiesa;
if ((peleX - 100) * (pmouseX - 100) <0) {
sound1.play ();
}
if ((pelėX - 200) * (pmouseX - 200) <0) {
sound2.play ();
}
if ((peleX - 300) * (pmouseX - 300) <0) {
sound3.play ();
}
if ((peleX - 400) * (pmouseX - 400) <0) {
sound4.play ();
}
if ((peleX - 500) * (pmouseX - 500) <0) {
sound5.play ();
}
}
void mouseReleased () {
isDragging = klaidinga;
} [/cceN_cpp]
Kodas Paaiškinkite:
Čia mes panaudojome du kintamuosius pmouseX ir pmouseY, esančius pačioje apdorojimo sistemoje. Jie yra panašūs į mouseX ir mouseY, tačiau tai, ką jie gavo, yra paskutinio kadro pelės koordinatė.
Funkcijų piešinyje mes panaudojome funkcijų eilutę (), kad pakeistume pradinę funkcijos elipsę (). Dėl to paskutinio kadro koordinatė tiesiogiai sujungiama su dabartinio kadro koordinatėmis. Taigi galime nubrėžti nuoseklias tiesias linijas ar kreives.
Esant „mouseDragged“, mes sukūrėme naują paleidimo sąlygą. Sprendžiant, ar paskutinio kadro ir dabartinio kadro koordinatės yra toje pačioje pusėje, kad žinotumėte, ar tam tikra koordinatė kerta. Paimkite šią sąlygą kaip pavyzdį: "if ((mouseX - 100) * (pmouseX - 100) <0)". Tarp teigiamų ir neigiamų reikšmių, gautų naudojant „mouseX - 100“, galime sužinoti, ar „mouseX“yra dešinėje ar kairėje nuo horizontalaus koodinato 100. Panašiai kaip „pmouseX - 100“. Todėl, kai du taškai priekyje ir gale nėra toje pačioje pusėje, teigiamas padaugina neigiamą, jis gaus naują neigiamą skaičių. Taigi vykdymo sąlyga yra įvykdyta.
Aukščiau pateikta supaprastinta išraiška, kuri sumaniai panaudojo tam tikrą matematinį algoritmą-du neigiami dalykai sukurs teigiamą. Taip pat galite padalyti į dvi situacijas, kad aptartumėte jas atskirai. Tačiau kur kas sudėtingiau parašyti sprendimo sąlygas. Sprendimo sąlygos "jei ((mouseX = 100) || (mouseX> 100 && pmouseX <= 100))" yra lygiavertės nustatytoms šaltinio kodo sąlygoms.
11 veiksmas: santykinės garso ir vaizdo valdymo funkcijos
Pirmiau minėtų funkcijų pakanka bendriems naudojimo scenarijams. Jei norite jį giliai iškasti, čia surinkau jums keletą bendrų garso ir vaizdo funkcijų. Galite ištirti jo naudojimo būdus pagal savo poreikius.
Norėdami išsamiau susipažinti, galite susipažinti su dokumentais iš oficialios svetainės.
Garsas (https://processing.org/reference/libraries/sound/index.html)
Vaizdo įrašas (https://processing.org/reference/libraries/video/index.html)
Šis straipsnis kilęs iš dizainerio Wenzy.
12 žingsnis: Santykiniai rodmenys:
Įdomios programavimo gairės dizaineriui-pirminio prisilietimo apdorojimas
Įdomios programavimo gairės dizaineriui - sukurkite savo pirmojo apdorojimo programą
Įdomios programavimo gairės dizaineriui-paleiskite savo nuotrauką (pirmoji dalis)
Įdomios programavimo gairės dizaineriui-paleiskite savo vaizdą (antroji dalis)
Įdomios programavimo gairės dizaineriui- programos proceso valdymas- ciklo ataskaita
Įdomios programavimo gairės dizaineriui-programos proceso valdymas-būklės ataskaita (pirmoji dalis)
Įdomios programavimo gairės dizaineriui-programos proceso valdymas-būklės ataskaita (antroji dalis)
Įdomios programavimo gairės dizaineriui-pasirinktinės funkcijos ir fraktalų atkūrimas
Įdomios programavimo gairės dizaineriui-pasirinktinės funkcijos ir fraktalų atkūrimas
Įdomios apdorojimo programavimo gairės dizaineriui-spalvų valdymas
13 žingsnis: šaltinis
Šis straipsnis yra iš:
Jei turite klausimų, galite susisiekti : [email protected].
Rekomenduojamas:
Įdomios programavimo gairės dizaineriui-paleisti vaizdą (antroji dalis): 8 žingsniai
Įdomios programavimo gairės dizaineriui-paleiskite savo paveikslą (antroji dalis): matematika daugeliui iš jūsų atrodo nenaudinga. Mūsų kasdieniame gyvenime dažniausiai naudojamas tiesiog sudėti, atimti, padauginti ir padalyti. Tačiau visai kas kita, jei galite kurti naudodami programą. Kuo daugiau žinosite, tuo nuostabesnį rezultatą gausite
Įdomios apdorojimo programavimo gairės dizaineriui-spalvų valdymas: 10 žingsnių
Įdomios apdorojimo programavimo gairės dizaineriui-spalvų valdymas. Ankstesniuose skyriuose mes daugiau kalbėjome apie tai, kaip naudoti kodą formavimui, o ne žinių apie spalvas. Šiame skyriuje mes išsamiau išnagrinėsime šį žinių aspektą
„Gesture Hawk“: rankomis valdomas robotas naudojant vaizdo apdorojimo sąsają: 13 žingsnių (su paveikslėliais)
„Gesture Hawk“: rankomis valdomas robotas, naudojant vaizdo apdorojimo sąsają: „Gesture Hawk“buvo pristatyta „TechEvince 4.0“kaip paprasta vaizdų apdorojimo pagrindu sukurta žmogaus ir mašinos sąsaja. Jo naudingumas slypi tame, kad norint valdyti robotinį automobilį, kuris veikia skirtingais būdais, nereikia jokių papildomų jutiklių ar dėvimų daiktų, išskyrus pirštines
Įdomios programavimo gairės dizaineriui-programos proceso valdymas-ciklo teiginys: 8 žingsniai
Įdomios programavimo gairės dizaineriui-programos proceso valdymas-ciklo teiginys: programos proceso valdymo-kilpos teiginysŠiame skyriuje jūs susisieksite su svarbiu ir galingu žinių taško ciklo teiginiu. Prieš skaitydami šį skyrių, jei norite programoje nupiešti 10 000 apskritimų, galite tai padaryti tik su ter
Įdomios programavimo gairės dizaineriui-paleisti vaizdą (pirmoji dalis): 16 žingsnių
Įdomios programavimo gairės dizaineriui-paleiskite savo paveikslą (pirmoji dalis): paleiskite! Bėk! Vykdyti! Programavimas nėra toks sudėtingas. Svarbiausia yra surasti savo ritmą ir daryti jį po vieną. Prieš skaitydamas šį skyrių, tikiuosi, kad jau buvai susipažinęs su pagrindine funkcijų piešimo metodu, kitaip jausiesi apsvaigęs ir sumišęs