Bildprogramm
Übersicht

![]() |
YankeeBetreff: Bildprogramm |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
heu war mir ma wieder langweilig ![]() Also ich erstelle 3 Dims: Code: [AUSKLAPPEN] Dim bildr(480,640) ;rot Dim bildb(480,640) ;blau Dim bildg(480,640) ;brün und immer wenn ich mousedown(1) drücke, wird da auf der position Code: [AUSKLAPPEN] bildr(MouseY(),MouseX()) = r bildg(MouseY(),MouseX()) = g bildb(MouseY(),MouseX()) = b halt die aktuelle farbe gespeichert (ihrgendwie ziehmlich verwirrden...) Hier der ganze code Code: [AUSKLAPPEN] ;mein end kompöiziertes programm ;von Yankee ;_____________________________________________________________________________________________________ Graphics 640,480 SetBuffer BackBuffer() SeedRnd MilliSecs() ;für das Fadenkreuz in nem malprogramm..... löl oder^^ Global faden = 5 ;die jeweiligen farben Global r=0,g=0,b=0 ;für FPS Global fps_frames, fps_ms,fps ;für die daten... Global d_r=Rnd(0,255),d_g=Rnd(0,255),d_b=Rnd(0,255) Global dplus_r=Rnd(0,1),dplus_g=Rnd(0,1),dplus_b=Rnd(0,1) ;diese function hier, weil wenn man Rnd(-1,1) macht, kann immer noch ne 0 rauskommen und das ist doof AnfangDatenFarbenAuswaehlen() ;variablen für die "daten", wo die info steht Global daten_x = 10 ;die ganzen farben speichern Dim bildr(480,640) ;rot Dim bildb(480,640) ;blau Dim bildg(480,640) ;brün NeuesBild() ;hauptschleife While Not KeyHit(1) Cls ;BildMalen() DatenAnzeigen() DatenFarbeAendern() MausZeugs() If MouseDown(1) Then NeuesPixel() Text 0,0,fps() Flip Wend ;----------------------------------------------------------------------------------------------------- ;ab hier alle functionen ;_____________________________________________________________________________________________________ ;das bild malen Function BildMalen() For x = 1 To 640 For y = 1 To 480 Color bildr(x,y),bildg(x,y),bildb(x,y) Rect x,y,1,1,1 Next Next End Function ;ein neues bild malen Function NeuesBild() For y = 1 To 480 For x = 1 To 640 bildr(x,y) = 255 bildg(x,y) = 255 bildb(x,y) = 255 Next Next End Function Function DatenAnzeigen() ;zum ausweichen der maus^^ If (MouseX() < 250 And MouseY() < 50) Then daten_x = 400 If (MouseX() > 400 And MouseY() < 50) Then daten_x = 10 Color d_r,d_g,d_b Text daten_x, 10, "F1 zum ändern der Farben" Text daten_x, 20, "F2 um ein bild zu Laden" Text daten_x, 30, "F3 oder zum speichern" End Function Function AnfangDatenFarbenAuswaehlen() ;wenn 1 dann 1, wenn 0 dann -1 ;rot If dplus_r = 0 Then dplus_r = -1 Else dplus_r = 1 EndIf ;blau If dplus_g = 0 Then dplus_g = -1 Else dplus_g = 1 EndIf ;grün If dplus_b = 0 Then dplus_b = -1 Else dplus_b = 1 EndIf End Function Function DatenFarbeAendern() d_r = d_r + dplus_r d_g = d_g + dplus_g d_b = d_b + dplus_b ;die richtichtung dann ändern oder wie des heist^^ If (d_r < 1 Or d_r > 254) Then dplus_r = -dplus_r If (d_g < 1 Or d_g > 254) Then dplus_g = -dplus_g If (d_b < 1 Or d_b > 254) Then dplus_b = -dplus_b End Function Function NeuesPixel() bildr(MouseY(),MouseX()) = r bildg(MouseY(),MouseX()) = g bildb(MouseY(),MouseX()) = b End Function Function MausZeugs() ;ein geiles Fadenkreuz^^ Color 50,100,150 Oval MouseX()-15,MouseY()-15,30,30,0 Line MouseX()-15,MouseY(),MouseX()-faden,MouseY() Line MouseX()+14,MouseY(),MouseX()+faden,MouseY() Line MouseX(),MouseY()-15,MouseX(),MouseY()-faden Line MouseX(),MouseY()+14,MouseX(),MouseY()+faden End Function Function fps() fps_frames = fps_frames +1 If MilliSecs()-fps_ms >= 1000 Then fps_ms = MilliSecs() fps = fps_frames fps_frames = 0 EndIf Return fps End Function Also mein problem: Die funktion BildMalen ist extrem langsam, aber ich weis net, wie ich es schneller machen könnte. Mit Create Image, immer wenn MouseDown(1) True ist? Oder einfach am anfang ein neues bild machen und dann das vohrige Bild(ohne mauskreuz und info) speichern und dann CreateImage machen und einfach LoadImage (vohriges Bild) und dann Plot MouseX(),Mousey() ??? Bitte brauche Hilfe! ^^ und äh ja noch ein wesentlicher fehler ihrgendwie malt der den Plot nie dahin, wo MouseX() und MouseY() eigentlich sind, sondern immer spiegelverkehrt. (Wenn Debug aus ist klappts, wenn er an ist net ![]() Kann jmd helfen? mfg Yankee |
||
Um so kleiner der code, um so schwieriger den Fehler zu finden:
Siehst du den Fehler? Klick mal hier drauf... hehehe |
![]() |
Triton |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, und nächstes mal setzen wir Codetags richtig und bemühen uns, die Rechtschreibung nicht ganz so arg verkommen zu lassen.
Zitat: und da hab ich ein bildprogramm erstellt
Und das soll was machen? So recht macht das Programm bei mir nichts, außer buntem Text ![]() Zitat: Die funktion BildMalen ist extrem langsam
Es ist kein Wunder, wenn es langsam ist, wenn du jeden einzelnen der Pixel mit Rect zeichnest. Writepixel und Writepixelfast können hier helfen. Ein Bild zu erstellen und Veränderungen darein zu zeichnen und dann dieses Bild ganz normal mit Drawimage/Drawblock zeichnen ist noch die beste Möglichkeit. Zitat: Oder einfach am anfang ein neues bild machen und dann das vohrige Bild(ohne mauskreuz und info) speichern und dann CreateImage machen und einfach LoadImage (vohriges Bild) und dann Plot MouseX(),Mousey() ???
Ist wohl schon zu spät. Hä? ![]() Zitat: Bitte brauche Hilfe! ^^
Oh ja. Code: [AUSKLAPPEN] Dim bildr(480,640) ;rot
Dim bildb(480,640) ;blau Dim bildg(480,640) ;brün mach daraus erstmal schon besser Code: [AUSKLAPPEN] Dim bildr(639,479)
Dim bildb(639,479) ;blau Dim bildg(639,479) ;brün |
||
Coding: silizium-net.de | Portfolio: Triton.ch.vu |
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und aus
bildr(MouseY(),MouseX()) = r bildg(MouseY(),MouseX()) = g bildb(MouseY(),MouseX()) = b das hier weil die Maus ja bewegt werden kann mx=MouseX() my=MouseY() bildr(mx,my) = r bildg(mx,my) = g bildb(mx,my) = b |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group