Rysowanie koła w przestrzeni...

0

Rysuje sobie koło rownolegle do plaszczyzny xz czyli tak jakbysmy patrzyli z gory :)
tym oto kodzikiem:

procedure draw_circle(radius, cx,cy,cz : single);
var
i : integer;
o : integer;
begin
o := 0;
if radius = 0 then exit;
glbegin(gl_triangles);
for i:=0 to 360 do
begin
inc(o);
if o = 10 then
begin
o := 0;
glvertex3f(cx,cy,cz); //nasz srodek
glvertex3f(cx+radiussin(ipi/180),cy,cz+radiuscos(ipi/180));
glvertex3f(cx+0.5+radiussin(ipi/180),cy,cz+0.5+radiuscos(ipi/180));
end;
end;
glend();
end;

i wychodzi mi oto takie cosik:
http://iglu.cz/bcclan/circle.jpg

a chce zeby wyszlo pelne czyste kolo (to jest wszystko w OpenGL)

wiem na czym polega blad - chyba ale leb mnie tak boli ze nie jestem w stanie lezec w spokoju, wiec ktos moglby mi pomoc :>

0

To tylko w 2D, ale może coś wykombinujesz. Tłumaczyłem na szybciora z C++, ale powinno działać.
[code]
DrawCircle3D(fX, fY, fZ : real, fRadius : real)
var
vectorX,
vectorX1,
vectorZ,
vectorZ1,
angle : real;
begin
vectorZ1 := fZ + fRadius;
vectorX1 := fX;

glBegin(GL_LINE_STRIP);
repeat
         vectorX := fX + (fRadius * sin(angle));
         vectorZ := fZ + (fRadius * cos(angle));
         glVertex3d(vectorX1,Ypos,vectorZ1);
         vectorX1 := vectorX;
         vectorZ1 := vectorZ;
until (angle > (2.0 * 3.14159));
glEnd;

end;
[/code]

0

dla zainteresowanych :P :d ;p
tylko pod jena plaszzcyzne =] xz

//wentylator? :P
procedure draw_circle_venti(radius, cx,cy,cz : single);
var
i : integer;
o : integer;
begin
o := 0;
if radius = 0 then exit;
glbegin(gl_triangles);
for i:=0 to 360 do
begin
inc(o);
if o = 10 then
begin
o := 0;
glvertex3f(cx,cy,cz); // nasz srodek
glvertex3f(cx+radiussin(ipi/180),cy,cz+radiuscos(ipi/180));
glvertex3f(cx+0.5+radiussin(ipi/180),cy,cz+0.5+radiuscos(ipi/180));
end;
end;
glend();
end;

//sama obrecz

0

Sinusoida kluczem do zdrowego bicia serca.

0

myslalem ze przez ten czas zmadrzales ale widze ze sie mylilem

0

Cicho, bo to jeszcze trafi do off-topic :-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1