Processing
Børre Stenseth
Problemer >Terning

Terning

Hva

Tegn en utbrettet terning slik at den kan printes, brettes og limes. Terningen skal ha sidekant 5cm og den skal printes på et A4-ark.

Relevante Skisser
terning1, terningSave, terningMeasure, A4

Strategi

En metodisk løsning av problemet bør kanskje gå etter følgende spor: Kan problemet dels opp, er det så fall noen opplagt eller smart rekkefølge, eller kan problemene løses hver for seg ?

Hvis vi analyserer den aktuelle oppgaven så involverer den i hvert fall tre problemer:

  1. Hvordan printer vi en skisse på papir?
  2. Hvordan finner vi ut hvor mange punkter som tilsvarer 5cm?
  3. Hvordan tegner vi en hensiktsmessig utbrettet kube?

Vi må da spørre oss om de kan løses hver for seg, og i vilken rekkefølge de i så fall kan eller bør løses. I dette tilfellet kan problemene åpenbart løses hver for seg. Når det gjelder rekkefølgen så kan det være at vi må tenke litt nærmere etter. Hvis vi skal finne ut hvor mange punkter som tilsvarer 5cm på papir, må vi kanskje få utskriften til å virke før vi kan måle.

Vi kan kanskje gå for en strategi der vi løser deloppgavene i den rekkefølgen vi har skrevet dem over.

Hvordan printer vi en skisse

Her får vi starte med å sjekke dokumentasjone av Processing, reference (Links to an external site.)Links to an external site. Der finner vi en print() funksjon, men den skriver tekst til consolet( tekstområdet unnder koden) så den kan vi ikke bruke. Men vi har en save() funksjon som kopierer det vi har tegnet til en fil. Denne må vi kunne bruke og deretter åpne fila i et tegneprogram og printe den derfra. Vi trenger en måte å starte save-operasjonen. Vi kan velge å bruke et museklikk. I sum løser vi deloppgave 1 med følgende program.

_terningSave.pde
void setup(){
  size(400,400);
}
void draw(){
  // hva som helst
  line(10,10,200,200);
}
void mouseClicked(){
  save("test1.png");
}

Vi kan raskt konstatere at file "test1.png" dukker opp i samme katalog som skissen. Hvis vi vil kan vi lese den inn i et tegneprogram og printe den.

Hvor mang punkter er 5 cm

Dette er en litt utfordrende oppgave. Vi må i korthet finne ut hvor mange punkter i skissen vi må bruke for å få 1 cm på utskriften. Vi kan lete rundt på nettet etter beskrivelse av skjermoppløsning og finne ut hva som skjer når vi skriver ut fra et skjermbilde, er det slik at en strek er like lang på papir som den er på skjerm ?

Alternativet er at vi prøver oss fram: tegner -> printer -> måler. Hvis vi gjør dette kommer vi fram til at vi treffer ganske bra med 28.6 punkter pr cm. Problemet er imidlertid at dette er tilpasset de settingene tegneprogrammet lar oss bruke år vi spesifiserer utskriften. Løsningen gjelder alså betinget.

Skissen som kan hjelp oss å eksperimenter kan se slik ut:

_terningMeasure.pde
void setup(){
  size(600,500);
  //hvit bakgrunn
  background(255,255,255);
}
void draw(){
  // prøver oss fram
  // printer og måler og endrer
  line(0,10,100,10);
  line(0,20,125,20);
  line(0,30,130,30);
  line(0,40,140,40);
}
void mouseClicked(){
  save("test1.png");
}

Hvordan tegner vi en utbrettet terning

Her er det mange muligheter. En løsning som minimaliserer limingen kan jo se slik ut (forminsket):

terning
_terning1.pde
/*
Tegn en utbrettet terning med sidekanter 5 cm
*/
 
// fra deloppgave 2
float cm=28.4;
 
void setup(){
  size(600,800);
  //hvit bakgrunn
  background(255,255,255);
}
 
void draw(){
  // marg
  translate(20,10);
  
  // fire vertikale
  rect(5*cm,0*cm,5*cm,5*cm);
  rect(5*cm,5*cm,5*cm,5*cm);
  rect(5*cm,10*cm,5*cm,5*cm);
  rect(5*cm,15*cm,5*cm,5*cm);
  // to på siden 
  rect(0,5*cm,5*cm,5*cm);
  rect(10*cm,5*cm,5*cm,5*cm);
}
 
// fra deloppgave 1
void mouseClicked(){
save("test1.png");
}

Alternativt

Hvis jeg tror at dette oppsettet med å tegne på en A-4-side var noe jeg kunne få bruk for senere kan jeg ordne koden min på en alternativ måte. Jeg kunne ha laget ferdig en skisse som tar seg av dimensjonering og utskrift, se A4 nedenfor

Fordelen ville være at vi hadde en gjenbrukbar komponent som vi kunne bruke i andre geometrioppgaver der riktige utskriftsdimensjoner er i fokus.

_A4.pde
/*------------------------------------------------------
Eksempelprogram som viser hvordan vi kan lage en A4-side
og tegne på den.
IKKE ENDRE DENNE FILA HVIS DU IKKE ER SIKKER PÅ HVA DU GJØR
-------------------------------------------------------*/
// skalerer slik at vi kan bruke (tilnærmet) cm
// på en A4-side. Du trenger ikke gjøre noe med dette
void lagA4(String navnet){
  // punkter pr cm
  float sfactor=28.4;
  // tenk og skriv i cm, origo oppe til venstre
  // og y-aksen nedover
  scale(sfactor,sfactor);
  // behold en tynn strek
  strokeWeight(1/sfactor);
  // hvit bakgrunn
  background(255);
  textSize(18/sfactor);
  fill(0);
  textAlign(RIGHT);
  text(navnet,20,1);
  textAlign(LEFT);
  fill(255);
    // sett origo 1 cm inn og ned på siden
  translate(1,1);
}
//----------------------------
// når programmet starter
void setup(){
  // tilnærmet A4
  size(596, 843);
  //frameRate(1);
}
//-----------------
// tegn ut
void draw(){
  // så tegnes din tegning
  minTegning();
}

//---------------------------------------------
// Når du klikker kopieres vinduet til 
// en til en tegning du kan skrive ut senere
void mouseClicked() {
   save("resultat.png");
}

og

_dittSvar.pde
/*
Her kan du lage din løsning.
Tegne området er et A4-ark md origo oppe til venstre
og du kan tenke i cm
Det er antagelig lurt å lagre denne skissen med et annet navn
enn A4 (menyen: File/SaveAs...) 
og du kan legge til flere skisse-filer etter behov
*/
void minTegning(){
  // lager A4.format og merker siden med et navn du vil ha på utskriften
  lagA4("jens");
  
  // her kommer din kode
}

Oppgaverforslag

Spillterning

Tegn ut en utbrettet terning med sidekanter 5cm på en skisse i A4-format. Sidene skal merkes med antall sirkler (1 til 6) som på en vanlig terning vi bruker når vi spiller.

Melkekartong

Lage en utbrettet figur som skal kunne brette, limes og få form som en melkekartong. Dekorer sidene med produktinformasjon, illustrasjoner eller reklame. Lag den så stor som du kan på et A4-ark.

Sylinder

Tegn ut en utbrettet sylinder med diameter 2cm og lengde 5 cm på en skisse i A4-format. Sylinderen skal være tett i endene.

Pyramide

Tegn ut en utbrettet pyramide med kvadratisk grunnflate med sider 3cm. Pyramiden skal være 5cm høy.

Problemer >Terning