[B+] Sinus / Kosinus
Übersicht

![]() |
SmilyBetreff: [B+] Sinus / Kosinus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Heyho,
Derzeit entwickel ich für die Schule eine kleines Programm in blitzbasic, wo die Winkelfunktionen Bildlich dargestellt werden. Derzeit kann mein Programm folgendes: - Kreis Darstellen & Winkel einzeichnen - Sinus/Kosinus messen - Die Werte aufzeichnen und Graphisch darstellen (Sinus/Kosinus-kurve) Ich habe vor, das Programm noch um die Tangens-Funktion zu erweitern, das kommt aber später. Ich wollte euch mal fragen, was ihr davon haltet und was ich daran noch verändern/verbessern kann. Hier ist das Programm (blitzplus) Code: [AUSKLAPPEN] Type button
Field x Field y Field xs Field ys Field name$ Field state End type Dim dsin(360) Dim dcos(360) Kreis_x = 120 Kreis_Y = 120 Kreis_R = 100 Graphics 800,600,16,1 ClsColor 255,255,255 Color 0,0,0 Kr_btn = Create_Button(670,10,120,20,"Kreis") Sin_btn = Create_Button(670,40,101,20,"Sinus") Cos_btn = Create_Button(670,70,101,20,"Kosinus") Sin_btn_r = Create_Button(770,40,20,20,"R") Cos_btn_r = Create_Button(770,70,20,20,"R") Dia_btn = Create_Button(670,100,120,20,"Diagramm") ; SetBuffer BackBuffer() ;Bei Blitzplus kann die Zeile auskommentiert werden. Repeat Cls Gosub drawbuttons ri# = (ATan2(Kreis_y -mousey(), MouseX()-Kreis_x ) + 360) Mod 360 If button_state(kr_btn) Color 255,128,128 For fri# = 1 To ri-1 Step 1 Line kreis_x,kreis_y,Kreis_x+cos(fri)*Kreis_R, Kreis_y - Sin(fri)*Kreis_R Next Color 0,0,0 Oval Kreis_x-Kreis_r,kreis_y-kreis_r,kreis_r*2,kreis_r*2,0 Line Kreis_x,Kreis_y,Kreis_x+cos(ri)*Kreis_r, kreis_y - Sin(ri)*kreis_r Line kreis_x,kreis_y,kreis_x+kreis_r,kreis_y Text 0,0,"a = " + Floor(ri) + "°" End If If button_state(sin_btn) Color 128,128,128 Line kreis_x+kreis_r,kreis_y,kreis_x+kreis_r+100,kreis_y Line kreis_x+cos(ri)*kreis_r, kreis_y - Sin(ri)*kreis_r, Kreis_x+Kreis_r+100, kreis_y - Sin(ri)*kreis_r Line Kreis_x+Kreis_R+95,Kreis_y-sin(ri)*Kreis_R,Kreis_x+Kreis_R+95,Kreis_y Text Kreis_x+Kreis_R+100,Kreis_y-sin(ri)*Kreis_R/2,sin(ri) ,0,1 End If If button_state(cos_btn) Color 128,128,128 Line Kreis_X,Kreis_Y,Kreis_x,Kreis_y + Kreis_R + 100 Line Kreis_X+cos(ri)*Kreis_R, Kreis_Y - Sin(ri)*Kreis_R, Kreis_X+cos(ri)*Kreis_R, Kreis_y + Kreis_R + 100 Line Kreis_X+cos(ri)*Kreis_R,Kreis_Y+Kreis_R+95,Kreis_X,Kreis_Y+Kreis_R+95 Text Kreis_x+Cos(ri)*Kreis_R/2,Kreis_Y+Kreis_R+110,cos(ri),1,1 End If If button_state(dia_btn) Line 100,350, 100, 550 Line 95,450, 500, 450 If button_state(sin_btn) Color 255,0,0 Rect 100+ri,450-Sin(ri)*100,5,5 If Button_State(Sin_btn_r) dsin(ri Mod 360) = 1 For x = 0 To 359 If dsin(x) line 100+x, 450-sin(x)*100, 99+x, 450-sin(x-1)*100 next End If If button_state(cos_btn) Color 0,0,255 Rect 100+ri,450+cos(ri)*100,5,5 If Button_State(Cos_btn_r) dcos(ri Mod 360) = 1 For x = 0 To 359 If dcos(x) line 100+x, 450+cos(x)*100, 99+x, 450+cos(x-1)*100 next End if End if Color 0,0,0 Line MouseX()-5, MouseY(), MouseX()+5, mousey() Line MouseX(), MouseY()-5, MouseX(), MouseY() + 5 Flip Until KeyHit(1) End .drawbuttons ;For button.button = Each button mouse = MouseHit(1) For button.button = Each button If button\state Color 200,255,200 else Color 255,200,200 Rect button\x,button\y,button\xs, button\ys,1 Color 0,0,0 Rect button\x,button\y,button\xs, button\ys,0 Text button\x+button\xs/2,button\y+button\ys/2,button\name$,1,1 If Mouse And rectsoverlap(button\x,button\y,button\xs,button\ys,mousex(),mousey(),1,1) button\state = (not button\state) Next return Function Create_button(x,y,xs,ys,name$) Button.button = New button button\x = x button\y = y button\xs = xs button\ys = ys button\name = name$ Return Handle(button) End Function Function button_state(btn) button.button = Object.button(btn) Return button\state End function |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
TheProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich finde, das gehört eher ins Codearchiv... | ||
aktuelles Projekt: The last day of human being |
![]() |
Triton |
![]() Antworten mit Zitat ![]() |
---|---|---|
Seh ich auch so.
![]() |
||
Coding: silizium-net.de | Portfolio: Triton.ch.vu |
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
ah sry.
Ich war mir nicht so ganz sicher wohin dami ![]() |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Cooles Teil. Es flimmert mir nur ein bisschen zu viel. Verwend bitte Backbuffer.
Sonst ist es wirklich cool. |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Klappt auch 1A in BB | ||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group