Ergebnis 1 bis 7 von 7
-
Bin neu hier
- 12.01.2010, 16:34
- #1
Hallo,
ich versuche mich grade in den Draw Funktionen. Leider finde ich dazu nur wenige Beispiele und irgendwie sieht das auch alles sehr verpixelt aus.
Gibt es irgendwo Tutorials dazu?
In Flash/Flex ist das alles so einfach
Grüße
-
- 12.01.2010, 16:56
- #2
Welche Draw Funktionen meinst du denn? Falls du mit Graphics z.b aus .net meinst dann kannst du eigentlich auch die Tutorials der Desktop Version probieren, allerdings sind nur die wichtigsen Methoden vorhanden (trotzdem kannst du damit so ziemlich alles tun).
Solltest du jedoch kompliziertere Effekte wie Alphablending etc wollen, so wird das etwas schwieriger, da .net von Haus aus dafür keine Unterstützung bietet. In diesem Fall solltest du dir mal Imaging ansehen und nach .net porten.
Beschreibe doch mal was du machen willst, und ob du in c++ native oder c# programierst, ich helfe dir dann gerne weiter...
-
Bin neu hier
- 12.01.2010, 17:29
- #3
Hallo Phippu,
ja ich meine die aus .NET mit C#.
Ich wollte erstmal eine Uhr basteln die aus drei Kreisen besteht. der äusserste ist für die Stunden, mittlerer für Minuten und der innere Kreis soll für die Sekunden stehen.
In Actionscript 3.0 würde ich das mit MoveTo und LineTo realisieren,
in .NET gibts aber nur DrawLine ( startX, startY, x, y ) was die ganze sache etwas kompliziert macht.
In Flash lösche ich mit gfx.clear(); die Zeichenfläche, in C# soll das mit gfx.Dispose() funktionieren?
-
Bin neu hier
- 12.01.2010, 17:33
- #4
Das habe ich bis jetzt...
die Stunden zähle ich nur zum testen mit ++ hoch.
Code:private Pen houerPen = new Pen(Color.Red, 2); protected int _houres = 24; protected int _minutes = 30; protected int _seconds = 1; private const double PI2 = Math.PI * 2; private const double RAD = 100; private const double mhX = 200; private const double mhY = 200; private Graphics gfx; private void render(){ gfx = this.CreateGraphics(); //houres _houres++; if (_houres > 24) _houres = 1; double hPI2 = PI2; int h = _houres * 100 / 24;//houres in percent 0-100 double startBM = ((hPI2 += ((h * 360 / 100) / h)) * Math.PI / 180); double startX = (Math.Cos(startBM) * RAD) + mhX; double startY = (Math.Sin(startBM) * RAD) + mhY; while (--h > 0) { double bm = ((hPI2 += ((h * 360 / 100) / h)) * Math.PI / 180); double px = (Math.Cos(bm) * RAD) + mhX; double py = (Math.Sin(bm) * RAD) + mhY; gfx.DrawLine(houerPen, (int)startX, (int)startY, (int)px, (int)py); startX = px; startY = py; } gfx.Dispose(); }
-
- 13.01.2010, 01:45
- #5
Vergiss nicht dass du auch Elipsen und Polygone zeichnen kannst. Vielleicht nicht ganz so effizient, aber du könntest doch 3 bitmaps als buffer erstellen. In jedes bmp kannst du dann dann den entsprechenden Kreis als Elipse zechnen und darüber einen zweiten schwarzen Kreis legen. Am schluss brauchst du nur noch die 3 buffer zu zeichnen et voila.
Falls das ganze jedoch etwas schneller gezeichnet werden soll und auch kantenglättung beinhalten soll (so wie im Bild), dann solltest du entweder OpenGl/DirectDraw oder aber eine geschickte Lösung mit vorgerenderten Bildern verwenden. Falls du willst kann ich dir ja mal zeigen wie das mit Tigre machbar wäre...
-
Bin neu hier
- 13.01.2010, 17:33
- #6
Hi,
das wäre nett von dir wenn du ein Beispiel in Tigre machen kannst.
Die Binaries habe ich jetzt im Projekt und versuch mich mal ein wenig damit.
Danke!
-
Bin neu hier
- 13.01.2010, 18:34
- #7
Kannst du mir noch eine gute Tweening Klasse empfehlen?
Ich suche so etwas wie TweenMax in AS 3 nur eben für C#
Ähnliche Themen
-
wochentaganzeige bei 2d
Von keks im Forum HTC Touch 3GAntworten: 3Letzter Beitrag: 14.12.2008, 15:13 -
Tutorials für Windows-Mobile-2003 SE bei Microsoft
Von raefu im Forum PlaudereckeAntworten: 1Letzter Beitrag: 02.12.2004, 10:39
Pixel 10 Serie mit Problemen:...