Jump to content

Figūru zīmēšana


Jānis
 Share

Recommended Posts

Sveicināti, varat lūdzu izskaidrot un izpalīdēt ar uzdevumu?

Uzrakstīt programmu, kas zīmē doto figūru. Katrs nākamā līmeņa kvadrāts ir 1/3 no iepriekšējā līmeņa kvadrāta izmēriem.

            Formas izmēri: 1000×1000

            Figūras izmērs: 600×600

            Figūras centrs atrodas formas centrā

Link to comment
Share on other sites

itanium

Ko tieši tu nesaprati?

Uztaisi programmu, kas 1000x1000 ekrāna vidū zīmē kvadrātus:

  • 600x600
  • 200x200
  • ~67x~67
  • u.t.t.

 

Pieļauju, ka pie kvadrāta ar malu garumu <=1 px vari apstāties ;)

Labots - itanium
Link to comment
Share on other sites

Bet palīdzi kodu uztaisīt, man šī tēma ir neskaidra.


Tas ir jāpilda Eclipsē

Link to comment
Share on other sites

itanium

Labs, kāpēc lai es to darītu? :D

Cik tālu pats esi ticis? Kāda vispār valoda?

Link to comment
Share on other sites

Mezavecis

AWT vai Swing? Vispār šajā forumā palīdzēšana  nozīmē esoša koda pielabošanu vai ideju pasviešanu, nevis koda uzrakstīšanu no nulles. Pirms uzdot jautājumus, ir jābūt skaidrībā, kā strādāt ar Javu. 

 

Te piemēri:

http://www.java2s.com/Tutorial/Java/0261__2D-Graphics/DrawRectangle.htm

http://stackoverflow.com/questions/9713432/drawing-simple-rectangles-on-a-jframe-in-java

Labots - Mezavecis
Link to comment
Share on other sites

Mezavecis

Vai tad kvadrāts nav taisnstūris?

Link to comment
Share on other sites

itanium

Mežaveci, netērē laiku - bezcerīgs gadījums.

Ne pats ko māk, ne pats ko meklē. Iedod uzdevumu un sagaida gatavu kodu...

Link to comment
Share on other sites

Bonifacijs

nekas tā nestiprina draudzību kā kaste alus uz Jāņiem

Labots - Bonifacijs
  • Patīk 1
Link to comment
Share on other sites

sākotnējā specifikācijā nav teikts, ka figūra jāzīmē uz ekrāna.

Link to comment
Share on other sites

unknovn

Tātad, kā redzu galdā ir jāliek

XX naudas/aliņi - Specifikācijas izstrāde

XX naudas/aliņi - Projektējuma izstrāde

XX naudas/aliņi - kodēšana/ testēšana

 

XX naudas/aliņi - telefon/skype konultācijas

 

 

Puika būs apmierināts un tauta nopelnīs :D

Link to comment
Share on other sites

Kaspars12

Jāni, tev svētki vēl patālu :D

 

Te jau teica, ja pats neuzepsi melnrakstu, tad būs jāmaksā par MD.

Link to comment
Share on other sites

unknovn

Bet tu čalīt izskaties galīgi bezcerīgs gadījums. Principā te tev visu jau uz paplātes pasniedza, pat man ir skaidrs kaut neesmu koderis. Te bez $ nezitiksi, vai paliksi bešā.

Link to comment
Share on other sites

Kaspars12

Ir $, ir uzdevums, nav $ nav uzdevuma!

 

Visa problēma, ja būsi devīgs ar $, izskaidros arī būtību!

Labots - Kaspars12
Link to comment
Share on other sites

Uzdevuma nosacījumi neatbilst bildei redzamajā. Kā no bildes redzams katrs kvadrāts sadalās trīs daļās, kur vidējai malai zīmējas klāt mazāki kvadrāti: https://i.imgur.com/UsH4Vqa.png

 

Katra no daļām sākotnējam kvadrātam ir 200px gara, jo 600/3=200. Kā arī redzams, ka kvadrātam ārpusē uz katru no četrām pusēm ir divi 200px gari segmenti.

Respektīvi vertikāli un horizontāli formas lielums ir 3*200 + 2*200 + 2*200 = 600 + 400 + 400 = 1400px. Bet uzdevumā prasīts 1400px liela forma. Ar 100px lielu formu visa tie zaļie kvadrāti neielīdīs formā!

 

Reku pierādījums ar JavaScript kodu:

Labots - bubu
  • Patīk 1
Link to comment
Share on other sites

AndrisBB

Es saprotu ka kopējais figūras izmērs ir 600px. Sākam piemēram ar 300px platu vidējo kvadrātu, kuru dalam ar 3 utt. (300->100 ->33->11->3) un turpinam kamēr var kautko uzzīmēt.

Precīzi 600 jau dabūt izskatās ka nav iespējams jebkurā gadījumā. Apskatot to paraugu izskatās ka tas mazākais kvadrāts ir mazliet nobīdīts un nemaz nav pa vidu, ko varētu izskaidrot ar pāreju no 11 uz 3

Link to comment
Share on other sites

Jā, pirmais kvadrāts ir 600px liels. Bet visa forma ir 1000px, ne?

Kas kur ir nobīdīts? Otrajā piemērā pelēkais kvadrāts = "forma". Tas ir 1000px liels. Zaļais kvadrāts ir 600px. No centra (500px) to zīmējot sanāk aizņemt (200,200)-(800,800) laukumu. Nākamā līmeņa kvadrāta izmērs ir 600px/3=200px.

Un 200px-200px = 0 un 800px+200px =1000. Tātad otrā līmeņa kvadrāts precīzi pieskarsies lielās pelēkās formas malām. Trešā līmeņa kvadrāts (un mazākie) jau ies pāri formas laukumam.

Link to comment
Share on other sites

AndrisBB

Nekur nav teikts ka pirmais kvadrāts ir 600px.

 

  • Katrs nākamā līmeņa kvadrāts ir 1/3 no iepriekšējā līmeņa kvadrāta izmēriem. - katrs nākamais kvadrāts ir 1/3 no iepriekšējā, te viss skaidrs
  • Formas izmēri: 1000×1000 - Te ar viss skaidrs, pelēkais kvadrāts ir 1000x1000, piemēram kkāds JPanels
  • Figūras izmērs: 600×600 - Figūras(kopējais) izmērs ir 600x600 nevis pirmā (lielakā) kvadrāta izmērs, var teikt ka ja vidējais kvadrāts ir apmēram 1/2 puse no figūras izmēra, tad kopējais izmērs nekad nepārsniegs 600x600

 

Te var redzēt ka pēdējais kvadrāts nav precīzi pa vidu. Var jau būt ka kautkādas kompresijas, encodinga nobīdes, bet maz ticams

4hbin4.jpg

Labots - AndrisBB
Link to comment
Share on other sites

Ah, nu ja visas figūras izmērs ir 600px, tad jā tas izklausās ticamāk.

Pēdējais pikselis nav pa vidu pieņemu tāpēc, ka 4/3 = 1, un 1 pikseli pa vidu 4x4 kvadrātam nevar nolikt :)

Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...