ITI0011-13-HW3-Kimp: erinevus redaktsioonide vahel

Allikas: Lambda
Mine navigeerimisribale Mine otsikasti
Ago (arutelu | kaastöö)
Ago (arutelu | kaastöö)
 
(ei näidata sama kasutaja 5 vahepealset redaktsiooni)
1. rida: 1. rida:
Tagasi [[ITI0011]] lehele.
== Joonistamisprogramm Kimp ==
Tuleb kirjutada graafilise kasutajaliidesega joonistamis-programm. Programm võimaldab kasutajal hiirega vabakäe kujundeid joonistada ja kujunditega teatud operatsioone sooritada.
Tuleb kirjutada graafilise kasutajaliidesega joonistamis-programm. Programm võimaldab kasutajal hiirega vabakäe kujundeid joonistada ja kujunditega teatud operatsioone sooritada.


5. rida: 9. rida:
* Joonistamise alustamiseks kasutaja vajutab ja hoiab all '''vasakut hiire nuppu'''. Hiirt '''lohistades''' kuvab programm hiire liikumise trajektoori joonega. Kujundi joonistamine lõpeb vasaku '''hiirenupu vabastamisega.'''
* Joonistamise alustamiseks kasutaja vajutab ja hoiab all '''vasakut hiire nuppu'''. Hiirt '''lohistades''' kuvab programm hiire liikumise trajektoori joonega. Kujundi joonistamine lõpeb vasaku '''hiirenupu vabastamisega.'''
* Programm võimaldab joonistada suvalise arvu kujundeid.
* Programm võimaldab joonistada suvalise arvu kujundeid.
* Joonistada peab saama ka '''punkti''' (hiire klikk ilma hiirt vahepeal liigutamata - joone algus- ja lõpp-punkt on samad).
* Akna '''parameetrite''' muutmisel - suurendamisel/vähendamisel, nihutamine, osaliselt või täielikult teiste akendega peitmine '''ei tohi''' joonistatud kujundeid '''visuaalselt rikkuda'''.
* Akna '''parameetrite''' muutmisel - suurendamisel/vähendamisel, nihutamine, osaliselt või täielikult teiste akendega peitmine '''ei tohi''' joonistatud kujundeid '''visuaalselt rikkuda'''.
* Programmist peab olema võimalik '''väljuda''' vajutades klahvi '''<escape>'''
* Programmist peab olema võimalik '''väljuda''' vajutades klahvi '''<escape>'''
13. rida: 18. rida:
== Lisaosa 3p ==
== Lisaosa 3p ==
* Programm võimaldab joonistatud '''kujundite liigutamist''' ...
* Programm võimaldab joonistatud '''kujundite liigutamist''' ...
** Hoides all '''<control>''' nuppu näitab kasutaja kujundile, mida soovib liigutada.
** Hoides all '''<control>''' nuppu liigub kasutaja kujundile, mida soovib liigutada. Kõik järgnev tegevus toimub '''<control>''' nuppu all hoides.
** Sihtmärgiks olev kujund tõstetakse esile (highlight) '''eristades''' see teistest kontrastse värviga - näiteks '''punaselt'''.
** Sihtmärgiks olev kujund tõstetakse esile (highlight) '''eristades''' see teistest kontrastse värviga - näiteks '''punaselt'''.
** Vajutades alla '''vasaku hiirenupu''' algab kujundi liigutamine. Programm liigutab kujundit vastavalt hiire lohistamise trajektoorile.
** Vajutades alla '''vasaku hiirenupu''' algab kujundi liigutamine. Programm liigutab kujundit vastavalt hiire lohistamise trajektoorile.
** Liigutamine '''lõpeb''' hiirenupu vabastades. Hoides all <control> nuppu võib kasutaja jätkata kujundite liigutamist.
** Liigutamine '''lõpeb''' hiirenupu vabastades. Hoides all <control> nuppu võib kasutaja jätkata kujundite liigutamist.
* ... ja '''kustutamist'''
* ... ja '''kustutamist'''
** Sarnaselt kujundi liigutamisele hoiab Kasutaja all '''<control>''' nuppu ja näitab hiirega kujundile, mida soovib kustutada.
** Sarnaselt kujundi liigutamisele hoiab Kasutaja all '''<control>''' nuppu ja liigub hiirega kujundile, mida soovib kustutada. Kõik järgnev tegevus toimub '''<control>''' nuppu all hoides.
** Vastav kujund tuuakse esile kontrastse värviga - näiteks punane.
** Vastav kujund tuuakse esile kontrastse värviga - näiteks punane.
** Vajutades '''paremat hiirenuppu''' eemaldatakse kujund.
** Vajutades '''paremat hiirenuppu''' eemaldatakse kujund.
29. rida: 34. rida:
* Kasutaja saab tegevusi tagasi võtta vajutades '''<escape>''' klahvi.
* Kasutaja saab tegevusi tagasi võtta vajutades '''<escape>''' klahvi.
* '''<escape>''' võtab tegevusi tagasi seni, kuni neid on. Kui rohkem tegevusi tagasi võtta ei saa, alustatakse '''programmist väljumist''' kuvades kinnituse dialoogakna sarnaselt põhiosale
* '''<escape>''' võtab tegevusi tagasi seni, kuni neid on. Kui rohkem tegevusi tagasi võtta ei saa, alustatakse '''programmist väljumist''' kuvades kinnituse dialoogakna sarnaselt põhiosale
* Selle lisaosa tegemine eeldab, et kujundi liigutamine ja kustutamine on realiseeritud.
** Kui kujundi liigutamine ja kustutamine ei ole realieeritud, võib saada redo+undo eest kokku 1 punkti.


== Lisaosa 1p ==
== Lisaosa 1p ==
37. rida: 44. rida:
* Kasutaja saab tegevusi korrata vajutades '''<space>''' (tühik) klahvi.
* Kasutaja saab tegevusi korrata vajutades '''<space>''' (tühik) klahvi.
* Korrata saab vaid neid tegevusi, mis on tagasi võetud.
* Korrata saab vaid neid tegevusi, mis on tagasi võetud.
* '''Lisaks''' peavad undo ja redo jaoks olema realiseeritud nupud (vabalt valitud paiknemisega). Üks nupp teeb redo, teine teeb undo.


Selle lisaosa tegemine on triviaalne, kui puhverdamise lisaosa on sobivalt tehtud.
Selle lisaosa tegemine on triviaalne, kui puhverdamise lisaosa on sobivalt tehtud.

Viimane redaktsioon: 7. november 2013, kell 13:01

Tagasi ITI0011 lehele.

Joonistamisprogramm Kimp

Tuleb kirjutada graafilise kasutajaliidesega joonistamis-programm. Programm võimaldab kasutajal hiirega vabakäe kujundeid joonistada ja kujunditega teatud operatsioone sooritada.

Põhiosa 5p

  • Programm kuvab kasutajale graafilise kasutajaliidese (akna) ja sellel vabakäe kujundeid joonistada
  • Joonistamise alustamiseks kasutaja vajutab ja hoiab all vasakut hiire nuppu. Hiirt lohistades kuvab programm hiire liikumise trajektoori joonega. Kujundi joonistamine lõpeb vasaku hiirenupu vabastamisega.
  • Programm võimaldab joonistada suvalise arvu kujundeid.
  • Joonistada peab saama ka punkti (hiire klikk ilma hiirt vahepeal liigutamata - joone algus- ja lõpp-punkt on samad).
  • Akna parameetrite muutmisel - suurendamisel/vähendamisel, nihutamine, osaliselt või täielikult teiste akendega peitmine ei tohi joonistatud kujundeid visuaalselt rikkuda.
  • Programmist peab olema võimalik väljuda vajutades klahvi <escape>
    • Enne väljumist kuvab programm dialoogakna, küsides kasutajalt kinnitust
    • Vajutades kinnitamise dialoogaknas klahvi <escape> - programmi väljumine katkestatakse
    • Vajutades <enter> lõpetab programm täielikult

Lisaosa 3p

  • Programm võimaldab joonistatud kujundite liigutamist ...
    • Hoides all <control> nuppu liigub kasutaja kujundile, mida soovib liigutada. Kõik järgnev tegevus toimub <control> nuppu all hoides.
    • Sihtmärgiks olev kujund tõstetakse esile (highlight) eristades see teistest kontrastse värviga - näiteks punaselt.
    • Vajutades alla vasaku hiirenupu algab kujundi liigutamine. Programm liigutab kujundit vastavalt hiire lohistamise trajektoorile.
    • Liigutamine lõpeb hiirenupu vabastades. Hoides all <control> nuppu võib kasutaja jätkata kujundite liigutamist.
  • ... ja kustutamist
    • Sarnaselt kujundi liigutamisele hoiab Kasutaja all <control> nuppu ja liigub hiirega kujundile, mida soovib kustutada. Kõik järgnev tegevus toimub <control> nuppu all hoides.
    • Vastav kujund tuuakse esile kontrastse värviga - näiteks punane.
    • Vajutades paremat hiirenuppu eemaldatakse kujund.

Lisaosa 2p

  • Programm puhverdab Kasutaja tegevused, et saaks tagasi võtta (i.k. undo)
    • Kujundi lisamine/joonistamine
    • Kujundi liigutamine
    • Kujundi kustutamine
  • Kasutaja saab tegevusi tagasi võtta vajutades <escape> klahvi.
  • <escape> võtab tegevusi tagasi seni, kuni neid on. Kui rohkem tegevusi tagasi võtta ei saa, alustatakse programmist väljumist kuvades kinnituse dialoogakna sarnaselt põhiosale
  • Selle lisaosa tegemine eeldab, et kujundi liigutamine ja kustutamine on realiseeritud.
    • Kui kujundi liigutamine ja kustutamine ei ole realieeritud, võib saada redo+undo eest kokku 1 punkti.

Lisaosa 1p

  • Lisaks puhvrist tagasivõtmisele (undo) on võimalik tegevusi korrata (i.k. redo). Kui kasutaja on mõned tegevused tagasi võtnud, saab need samad tegevused uuesti teha
    • Kujundi lisamine/joonistamine
    • Kujundi liigutamine
    • Kujundi kustutamine
  • Kasutaja saab tegevusi korrata vajutades <space> (tühik) klahvi.
  • Korrata saab vaid neid tegevusi, mis on tagasi võetud.
  • Lisaks peavad undo ja redo jaoks olema realiseeritud nupud (vabalt valitud paiknemisega). Üks nupp teeb redo, teine teeb undo.

Selle lisaosa tegemine on triviaalne, kui puhverdamise lisaosa on sobivalt tehtud.