Muuuuczek567 Opublikowano 22 Września 2009 Opublikowano 22 Września 2009 Powiem krótko - nawet Dawidds nie będzie miał się do czego przyczepić :) Link: http://www.gmclan.org/up5655_12_kolko.html Sterowanie: 1 - moje rysowanie koła 2 - GM-owe rysowanie koła Aha - Mój skrypt jest wydajniejszy przy rysowaniu dużych kół.
Jaklub Opublikowano 22 Września 2009 Opublikowano 22 Września 2009 postanowiłem zmarnować moje jakże cenne 5 minut, które mogłem przeznaczyć na sprawdzenie pracy domowej, by pobrać, skonwertować z gmk na gm6 i przetestować to oto dzieło. twoje kółka wyglądają lepiej, ale nie wiem czy to jest wydajniejsze (tak prosto myśląc rysowanie dwudziestoczterokąta jest wydajniejsze niż wielokąta z dynamicznie dobieraną liczbą wierzchołków). edit: teorię o większej wydajności twojej metody włóż między bajki. rysowałem 100 kół na klatkę twoją i GMową metodą, o promieniu 450. twoja metoda - 15fps gmowa - 600fps cóż, twoje ładniej wygląda, ale w życiu go nie użyję do rysowania małych kół. 7/10 -> 4/5 się należy.
Muuuuczek567 Opublikowano 22 Września 2009 Autor Opublikowano 22 Września 2009 Ciekawe... U mnie wygląda to tak: 60 moich 450 - 8 60 GM-owych 450 - 15 Pewnie dlatego (choć nie jestem pewien), że w GM6 działa to trochę inaczej. E: Zresztą też uważam, że też bez sensu używać mojego skryptu do małych kół. Po co rysować (przy dokładności 5) 52 primitive, skoro koło GM-owe ma 24 wierzchołki...
Tymon Opublikowano 22 Września 2009 Opublikowano 22 Września 2009 OK, to teraz mały materiał edykacyjny: GML // circle( x, y, r, precision ) x = argument[0]; y = argument[1]; r = argument[2]; c = 90 / argument[3]; a = c; px = r; py = 0; repeat( argument[3] ) { lx = px; ly = py; px = lengthdir_x( r, a ); py = lengthdir_y( r, a ); a += c; draw_line( x + lx, y + ly, x + px, y + py ); draw_line( x - lx, y + ly, x - px, y + py ); draw_line( x + lx, y - ly, x + px, y - py ); draw_line( x - lx, y - ly, x - px, y - py ); // dla zobrazowania sposobu rysowania sleep( 100 ); screen_refresh(); } Obrazuje sposób rysowania koła w 4 razy prostszy sposób, a dlaczego aż 4? Analizuj kod.
fervi (Skovv) Opublikowano 23 Września 2009 Opublikowano 23 Września 2009 ehh...ale komu i po co to się przyda?...:D
I am Lord Opublikowano 23 Września 2009 Opublikowano 23 Września 2009 wygeneruj koło za pomocą draw_circle to zobaczysz że jest kanciaste a tutaj możesz kanciastość sobie zmieniać. ( może wyglądać lepiej lub gorzej od tego z gma )
fervi (Skovv) Opublikowano 23 Września 2009 Opublikowano 23 Września 2009 nie lepiej odpalić paint i rysnąć kółko?
fervi (Skovv) Opublikowano 23 Września 2009 Opublikowano 23 Września 2009 czemu? po co się męczyć kodem...jeszcze się trzeba przejmować czy wydajne...:D
Tymon Opublikowano 23 Września 2009 Opublikowano 23 Września 2009 ... tak, przejmować się. Naprawdę myślisz, że koło narysowane w paincie o promieniu 300px będzie lepsze bo zajmuje dodatkowo pamięć o grafikę 600x600px?
Nobody Opublikowano 23 Września 2009 Opublikowano 23 Września 2009 A o funkcji draw_set_circle_precision(precision) zapomnieli?
Tymon Opublikowano 23 Września 2009 Opublikowano 23 Września 2009 Nie, mówimy o sposobie rysowania koła/okręgu. To tak jakbyś chciał zaprogramować to w C++
I am Lord Opublikowano 23 Września 2009 Opublikowano 23 Września 2009 A o funkcji draw_set_circle_precision(precision) zapomnieli? lol w dokumentacji gma 6.1 nie ma tej funkcji. Próbowałem znaleźć po indexch i w search nie było, mimo to jak napisałem w gmie to ją pokolorował.
fervi (Skovv) Opublikowano 23 Września 2009 Opublikowano 23 Września 2009 jejku ale macie problem...wielki temat...o kółku...:D
ZeroXbot Opublikowano 23 Września 2009 Opublikowano 23 Września 2009 No dobra Tymku, mam pytanie. Skrypt Muczka pozwala rysować i koła i okręgi, a twój tylko okrąg. Pytanie: Jak zrobisz koło robiac to prosciej niż skrypt Muczka?
Jaklub Opublikowano 23 Września 2009 Opublikowano 23 Września 2009 bardzo proste - zamiast r robić r1 i r2.
ZeroXbot Opublikowano 23 Września 2009 Opublikowano 23 Września 2009 bardzo proste - zamiast r robić r1 i r2. hę? Znaczy się tobie chodzi o taki jakby pierścień? A mi chodzi o okrąg z wypełnieniem, czyli koło. :|
I am Lord Opublikowano 23 Września 2009 Opublikowano 23 Września 2009 na przykładzie Tymona skryptu można zrobić pętle która wykonywała by się tyle razy ile wynosi promień i co stepa pętli zmniejszać promień rysowanego koła ale to nie wydajne.
Tymon Opublikowano 23 Września 2009 Opublikowano 23 Września 2009 GML // circle_filled( x, y, r, precision ) x = argument[0]; y = argument[1]; r = argument[2]; c = 90 / argument[3]; a = 0; i = 0; draw_primitive_begin( pr_trianglestrip ); repeat( argument[3] + 1 ) { px = lengthdir_x( r, a ); py = lengthdir_y( r, a ); draw_vertex( x, y ); draw_vertex( x + px, y + py ); a += c; i += 1; } draw_primitive_end(); s[0,0] = -1; s[0,1] = 1; s[1,0] = 1; s[1,1] = -1; s[2,0] = -1; s[2,1] = -1; si = 0; repeat( 3 ) { i = 0; draw_primitive_begin( pr_trianglestrip ); repeat( argument[3] + 1 ) { draw_vertex( x, y ); draw_vertex( x + px * s[si,0], y + py * s[si,1] ); i += 1; } si += 1; draw_primitive_end(); } Wybaczcie niedbalstwo, ostatnio niezły ze mnie świntuch. ;)
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się