Hej! Hm, ang. ditt namn, är det ditt verkliga namn eller någon form av alias? Om det är någon form av alias bör du byta. Jag ser det snarare så här:Hur kan man anpassa grafiken till storleken på fönstret?
Jag har i ett fönster ritat ett antal cirklar. Där har jag också lagt in en bakgrundsbild. När jag förstorar/förminskar fönstret så följer bakgrundsbilden med (ändrar storlek för att passa fönstret) men inte cirklarna. Hur kan jag göra så att även cirklarna följer med dvs förstoras i takt med fönstret? Jag sitter fast. Jag skulle uppskatta tips på hur jag kan lösa detta och jag behöver inte ett färdigt program men om någon kan visa lite exempel kod så är jag jätte tacksam (jag antar att det här är ändå ganska så basics)
Tack på förhand!Sv: Hur kan man anpassa grafiken till storleken på fönstret?
Hur som haver; de här cirklarna, visst är det något som du själv ritat upp, dvs. att du inte använder någon kontroll till dit? Om det är så ska du se till att du ritar cirklarna i paint-eventet (eller vad det nu kan heta i java.) Vid varje ändring av fönstrets storlek ska du tvinga fram en omritning av hela fönstret.
Själva utritningen av cirklar är lite knepigare, men bara lite. Saken är den att du får tänka att du ha en okänd sträcka. På den här sträckan vill du placera ut några punkter. Eftersom att du inte vet sträckans längd får du ange positionen i procent (eller motsvarande.) När du sedan får reda på sträckans längd (under körningen, motsvarar fönstrets ena sida) så multiplicerar du helt enkelt positionen med fönstrets ena sida.
Ex:
25% = 0,25
Fönstret är 200 pixlar brett
Punkten kommer hamna på:
0,25 * 200 px = 50 px
Eftersom att det där endast var en punkt enligt en linje men du vill rita upp cirklar får du använda dig av två punkter, en punkt för x-axeln där cirkeln ska börja och en för y-axeln där cirkeln ska börja. Nu kan du rita en cirkel på rätt ställe, men du kan inte bestämma storleken på den. För att bestämma storleken får du skaffa dig ytterligare två punkter, x resp. y för där cirkeln ska sluta.
Jag kan inte skriva någon fungerande kod, var för länge sedan jag höll på med java. Har nog inte ens någon kompilator för java på burken ;)Sv:Hur kan man anpassa grafiken till storleken på fönstret?
Du har en startkonfiguration för ett antal punkter.
För att få se längdskaleförändringen så tar du kvoten mellan ett givet mått före och ett givet efter. Ett rimligt är bredden på fönstret före resp. efter. Vi kallar dem för b1 och b2.
Sen skall alla endimensionella grejer skalas med b2/b1, dvs alla punkter, alla radier, osv.
Detta gäller om hela fönstret skalas "skalenligt", annars är din fråga felformulerad (då ska du få ellipser efteråt).
Alltså:
//när programmet startar
startwidth=window.width
//när du vill rita ut något
for(alla avstånd r som du vill ändra) //r kan vara x-position, y-position, radie, etc.
nytt r = r*(window.width/startwidth)