Ura

Primer za predavanje

Log in to post a comment.

const ura = 2
const minuta = 33

const t = new Turtle();

const dolzina_urnega_kazalca = 40
const dolzina_minutnega_kazalca = 60
const obod_ure = dolzina_minutnega_kazalca + 5

let prava_ura = (ura >= 12) ? ura - 12 : ura
let kot_urnega_kazalca = prava_ura * 30 + minuta / 2
let kot_minutnega_kazalca = minuta * 6

let x_ure = izracunaj_x_os(kot_urnega_kazalca, dolzina_urnega_kazalca)
let y_ure = izracunaj_y_os(kot_urnega_kazalca, dolzina_urnega_kazalca)
t.jump(0, 0)
t.goto(x_ure, y_ure)

let x_minute = izracunaj_x_os(kot_minutnega_kazalca, dolzina_minutnega_kazalca)
let y_minute = izracunaj_y_os(kot_minutnega_kazalca, dolzina_minutnega_kazalca)
t.jump(0, 0)
t.goto(x_minute, y_minute)

t.jump(0, -obod_ure)
t.circle(obod_ure)

izrisi_oznake_ur(obod_ure)

function izracunaj_x_os(kot, dolzina_rocice)
{
    let popravljen_kot = kot - 90
    let popravljen_kot_v_radianih = popravljen_kot * Math.PI / 180;    
    return dolzina_rocice * Math.cos(popravljen_kot_v_radianih)
}

function izracunaj_y_os(kot, dolzina_rocice)
{
    let popravljen_kot = kot - 90
    let popravljen_kot_v_radianih = popravljen_kot * Math.PI / 180;    
    return dolzina_rocice * Math.sin(popravljen_kot_v_radianih)
}

function izrisi_oznake_ur(dolzina_oboda)
{
    let dolzina_zacetka_ure = dolzina_oboda - 10
    let dolzina_zacetka_minute = dolzina_oboda - 5
    let dolzina_konca = dolzina_oboda - 2
    
    for(let kot = 0; kot < 360; kot += 6) {
        let dolzina_zacetka = (kot % 30 == 0) 
            ? dolzina_zacetka_ure
            : dolzina_zacetka_minute
        
        let x_zacetek = izracunaj_x_os(kot, dolzina_zacetka)
        let y_zacetek = izracunaj_y_os(kot, dolzina_zacetka)
        t.jump(x_zacetek, y_zacetek)
        
        let x_konec = izracunaj_x_os(kot, dolzina_konca)
        let y_konec = izracunaj_y_os(kot, dolzina_konca)
        t.goto(x_konec, y_konec)
    }
}