beginnende programmeur ! processing vraag

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Noahxx
  • Registratie: November 2014
  • Laatst online: 30-09 16:13
Hallo tweakers,

Ik wil een zoomfactor toepassen zodat bij het invoeren van een hogere waarde dan 500 het ook nog zichtbaar blijft. Hoe doe ik dit ?

size(500, 200);
background(0,0,0);

// Staven (deze waardes kunnen veranderen)
float staafA = 20.0;
float staafB = 190.0;
float staafC = 150.0;


//staafA
int xposA = 50;
Float yposA = 200 - staafA;

fill(68,44,105);
rect(xposA,yposA,100,staafA);
text(staafA,xposA,yposA);

//staafB
int xposB = 200;
float yposB= 200 - staafB;

fill(113,255,84);
rect(xposB,yposB,100,staafB);
text(staafB,xposB,yposB);

//staafC
int xposC = 350;
float yposC = 200 - staafC;

fill(255,144,8);
rect(xposC,yposC,100,staafC);
text(staafC,xposC,yposC);


Groeten _/-\o_

Acties:
  • +1 Henk 'm!

  • xFeverr
  • Registratie: Juni 2011
  • Laatst online: 18:23
Ik kan er niet echt uithalen wat je nu precies wil doen... Bovendien lijkt het er op alsof je het hier maar neerpleurt zonder zelf enige inspanning te leveren. En ik mis ook nog code-tags, wat het voor ons ook lastiger lezen maakt.

Dus, wat is nu de bedoeling?

Acties:
  • 0 Henk 'm!

  • Noahxx
  • Registratie: November 2014
  • Laatst online: 30-09 16:13
Mijn excuses, het zijn 3 staafdiagrammen die in het scherm moeten passen.
De hoogte van de window is 500. De staafdiagrammen moeten dus nog zichtbaar blijven als de waarde van de staafdiagram meer dan 500 is.

Volgens de opdracht moet ik werken met een zoomfactor(dit is een extra opdracht dus kan er geen info over vinden in het lesmateriaal)

Acties:
  • +1 Henk 'm!

  • SPee
  • Registratie: Oktober 2001
  • Laatst online: 02:06
Wil je dat het volledig scherm uitzoemt, of dat je ondergrens naar boven wordt gehaald.

In het eerste geval, deel je de waardes (staafA, -B en -C) door de zoomfactor.
In het tweede geval, verminder je de waardes met de ondergrens.

let the past be the past.


Acties:
  • +1 Henk 'm!

  • P_Tingen
  • Registratie: Maart 2005
  • Laatst online: 19:25

P_Tingen

omdat het KAN

Je wil waarschijnlijk ook dat de staven nog enigszins toonbaar zijn als ze juist heel klein zijn. Als je window 500 px hoog is en je staven zijn bijvoorbeeld 10, 12 en 18 hoog, dan zie je er geen kont van.

Wat je zou kunnen doen is bv de hoogste staaf altijd 95% van je window geven, want de hoogste wil je niet helemaal tot bovenaan hebben, dan zit hij tegen de bovenrand aangeplakt en is lelijk. Dus waarde 18 = 95% hoogte (oftewel 450px *). Hieruit volgt je zoomfactor van 450 / 18 = 25. Je kleinste staaf met waarde 10 wordt dan 10 x 25 = 250. Je middelste staaf 12 x 25 = 300 en je hoogste 18 x 25 = 450.

Voor andere waardes moet je een andere zoomfactor berekenen. Voor de staven uit je eigen voorbeeld:
20 / 190 / 150

Hoogste staaf = 190. Max hoogte van 450px geeft factor 450 / 190 = 2,36.
Staven worden dan:
20 x 2,36 = 47px
190 x 2,36 = 448px
150 x 2,36 = 354px

* edit: rekenen is natuurlijk een kunst, 95% van 500px is 475 en geen 450, maar 90% is ook mooi 8)

[ Voor 5% gewijzigd door P_Tingen op 04-02-2018 16:40 ]

... en gaat over tot de orde van de dag


Acties:
  • +1 Henk 'm!

  • b2vjfvj75gjx7
  • Registratie: Maart 2009
  • Niet online
P_Tingen schreef op zondag 4 februari 2018 @ 16:30:
Wat je zou kunnen doen is bv de hoogste staaf altijd 95% van je window geven, want de hoogste wil je niet helemaal tot bovenaan hebben, dan zit hij tegen de bovenrand aangeplakt en is lelijk. Dus waarde 18 = 95% hoogte (oftewel 450px). Hieruit volgt je zoomfactor van 450 / 18 = 25. Je kleinste staaf met waarde 10 wordt dan 10 x 25 = 250. Je middelste staaf 12 x 25 = 300 en je hoogste 18 x 25 = 450.
Inderdaad gewoon de boel relatief houden qua formaat en niet absoluut bepalen.

Zelf ook zo iets gemaakt laatst (html / css) waarbij de hoogte van elke balk relatief is tov. de hoogste waarde;

Afbeeldingslocatie: https://s9.postimg.org/h2vrptwu7/Clipboard-1.png

Acties:
  • 0 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
code:
1
2
3
4
staafMax = max(staafA, staafB, staafC, ....);
staafA% = 100 * staafA / staafMax;
staafB% = 100 * staafB / staafMax;
etc.


dan begrijp je wel wat je moet doen...

[ Voor 3% gewijzigd door DJMaze op 04-02-2018 17:20 ]

Maak je niet druk, dat doet de compressor maar


Acties:
  • 0 Henk 'm!

  • Noahxx
  • Registratie: November 2014
  • Laatst online: 30-09 16:13
top ! bedankt voor jullie reacties.
Pagina: 1