#!/usr/bin/env python3
#vp_slider_zylinder.py
from vpython import *
#Daten
l0=3
r0=1
rho=7.85 #Dichte von Stahl in kg/dm^3
#Berechnungen durchfuehren
def calc():
    l=sldL.value #Laenge
    r=sldR.value #Radius
    zylinder.length = l
    zylinder.radius = r
    V=pi*r**2*l #Volumen
    m=rho*V     #Masse
    J=m*r**2/2  #Traegheitsmoment
    txtL.text=text='\t %2.1f dm' %l
    txtR.text=text='\t %2.1f dm' %r
    lblV.text = '<i>V</i> = %2.1f dm<sup>3</sup>' %V
    lblM.text = '<i>m</i> = %2.1f kg' %m
    lblJ.text = '<i>J</i> = %2.1f kgm<sup>2</sup>' %J 
#Grafikbereich
scene.title="<h3>Tr&auml;gheitsmoment eines Zylinders</h3>"
scene.background = color.white
scene.range=5
#Zyliderobjekt erzeugen
zylinder = cylinder(pos=vec(-5,0,0),color=color.red)
zylinder.axis=vec(l0,0,0)
zylinder.radius=r0
#Slider: Laenge ändern
scene.caption = "\nL&auml;nge &auml;ndern: \n\n" 
sldL = slider(bind=calc,min=1,max=10,value=l0,length=650)
txtL = wtext(text='\t %2.1f dm' %sldL.value)
#Slider: Radius aendern
scene.append_to_caption("\n\nRadius &auml;ndern: \n\n")
sldR = slider(bind=calc,min=1,max=2,value=r0,length=650)
txtR = wtext(text='\t %2.0f dm' %sldR.value)
scene.append_to_caption("\n\n")
#Ergebnisse ausgeben
lblV = label(pos=vec(-4,-4,0),text='<i>V</i> = %2.1f dm<sup>3</sup>' %0)
lblM = label(pos=vec(0,-4,0),text='<i>m</i> = %2.1f kg' %0)
lblJ = label(pos=vec(4,-4,0),text='<i>J</i> = %2.1f kgm<sup>2</sup>' %0)
