Skocz do zawartości


Zdjęcie

[c#]Kula


  • Zamknięty Temat jest zamknięty
1 odpowiedź w tym temacie

#1 4d@m

4d@m

    Nowy

  • 2 postów

Napisano 07 06 2007 - 19:56

Witam.
Potrzebuje kod w C#, ktory bedzie rysowac kule skladajaca sie z poludnikow i rownoleznikow, cos na wyglad siatki kuli. Ten program mam oddac w niedziele jako zaliczenie, jesli jest to dla kogos obcykanego banal, lub cosnajmniej nie problem, to prosilbym o umieszczenie takie go kodu, lub przeslanie na adakos@tlen.pl. Bede naprawde wdzieczny. Do tej pory prace na zajecia wychodzily bez problemu, az tu....hm. Jesli jest prostrza metoda, na narysowanie niz kod rysujacy okrag, ktory nizej podaje. To prosze ta prostrza metoda.
Oto kod, ktory posiadam z ostatnich zajec, zmiany wprowadzane w nim daja takie koszmarne efekty, ze juz brakuje mi fantazji:
using System;using CsGL.OpenGL;using System.Windows.Forms;namespace cw2{		public class kula: CsGL.OpenGL.OpenGLControl	{		public kula()		{			this.Dock=DockStyle.Fill;		}		public override void glDraw()		{		GL.glClear(GL.GL_COLOR_BUFFER_BIT|GL.GL_DEPTH_BUFFER_BIT);							GL.glMatrixMode(GL.GL_MODELVIEW);		GL.glLoadIdentity();		GL.gluLookAt(5.0,5.3,5.0,		             0.0,0.0,0.0,		             0.0,5.0,0.0);				rysujokrag(0.0,0.0,-1.2,2.0,100.0);		//GL.glTranslated(0.0,0.0,0.0);		rysujokrag(0.0,0.2,-0.8,2.0,100.0);		rysujokrag(0.0,0.4,-0.4,2.0,100.0);		rysujokrag(0.0,0.6,-0.2,2.0,100.0);		rysujokrag(0.0,0.8,0.2,2.0,100.0);		rysujokrag(0.0,1.0,0.6,2.0,100.0);		rysujokrag(0.0,1.2,1.0,2.0,100.0);// Srodek			GL.glTranslated(0.0,0.0,0.5);			rysujokrag(0.0,1.2,1.0,2.0,100.0);		GL.glTranslated(-1.0,-1.0,0.0);		rysujokrag(0.0,1.4,0.6,2.0,100.0);		rysujokrag(0.0,1.6,0.2,2.0,100.0);		rysujokrag(0.0,1.8,-0.2,2.0,100.0);		rysujokrag(0.0,2.0,-0.4,2.0,100.0);		rysujokrag(0.0,2.2,-0.8,2.0,100.0);		rysujokrag(0.0,2.4,-1.2,2.0,100.0);		                }			protected override void InitGLContext()		{			base.InitGLContext();						GL.glMatrixMode(GL.GL_PROJECTION);			GL.glLoadIdentity();			GL.gluPerspective(45.0,(double)this.Height/(double)this.Width,1.0,100.0);			GL.glMatrixMode(GL.GL_MODELVIEW);			GL.glLoadIdentity();			//GL.glEnable(GL.GL_DEPTH_TEST);								}		protected override void OnSizeChanged(EventArgs e)		{			base.OnSizeChanged(e);			GL.glMatrixMode(GL.GL_PROJECTION);			GL.glLoadIdentity();			GL.gluPerspective(100.0,(double)this.Height/(double)this.Width,1.0,100.0);			GL.glMatrixMode(GL.GL_MODELVIEW);			GL.glLoadIdentity();		}		public void rysujokrag(double sx, double sy, double sz, double r, double d)		{			double x=0.0;			double y=0.0;			GL.glBegin(GL.GL_LINE_STRIP);			for(double kat=0.0; kat<(2*Math.PI); kat+=(2*Math.PI)/d)			{				x=sx+r*Math.Cos(kat);				y=sy+r*Math.Sin(kat);				GL.glVertex3d(x,y,sz);			}			GL.glVertex3d(sx+r, sy, sz);			GL.glEnd();		}			}}
P.S. Z gory dziekuje osobie, ktora sie tego podejmie oraz za wszelkie proby pomocy.


//Aman: zdublowany temat przenoszę do kosza


Witam. Ponizej kod rysujacy sphere. Moglby mi ktos podpowiedziec dlaczego nie kompiluje go poprawnie C#? wskazuje blad w :
[u]void[/u])
oraz
void main([u]void[/u])
++++++++++++++++++++++
using System;
using CsGL.OpenGL;
using System.Windows.Forms;

namespace cw2
{

public class bryla _linenums:0'>void rysujScene(<strong class='bbc'>[u]void[/u]</strong>)orazvoid main(<strong class='bbc'>[u]void[/u]</strong>)++++++++++++++++++++++using System;using CsGL.OpenGL;using System.Windows.Forms;namespace cw2{ public class bryla: CsGL.OpenGL.OpenGLControl { public bryla() { this.Dock=DockStyle.Fill; GLenum drawStyle=GLU_FILL; } void rysujScene(void) { glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); gluLookAt(0.0f,0.3f,6.0f, 0.0f,0.0f,-10.0f, 0.0f,0.5f,0.0f); glRotatef(80.0f,1.0f,0.0f,1.0f); GLUquadricObj *kula; kula = gluNewQuadric(); glPopMatrix(); gluQuadricDrawStyle(kula, drawStyle); gluSphere(kula, 0.6, 25, 25); gluDeleteQuadric(kula); glPushMatrix(); glutSwapBuffers(); } protected override void InitGLContext() { base.InitGLContext(); GL.glClearColor(0.0f,0.0f,0.0f,0.0f); void stan_renderowania (void) { glEnable(GL_DEPTH_TEST); glClearColor(0.0f, 0.0f, 1.0f, 1.0f); glColor3f(1.0f,1.0f,1.0f); } void keyboard (unsigned char key, int _x, int _y) { //klawisz ESC wyjście z aplikacji if(key==27) exit(0); //rysowanie za pomocą linii if(key=='l') {drawStyle=GLU_LINE;} //rysowanie za pomocą punktów if(key=='p') {drawStyle=GLU_POINT;} //rysowanie za pomocą siatki if(key=='s') {drawStyle=GLU_SILHOUETTE;} //rysowanie wypełnionego obiektu if(key=='f') {drawStyle=GLU_FILL;} //odrysowanie sceny glutPostRedisplay(); } } void reshape (GLsizei w, GLsizei h){ glViewport(0,0,(GLsizei)w,(GLsizei)h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); if(h==0) h=1; GLfloat aspect; aspect= (GLfloat)w/(GLfloat)h; gluPerspective(20, aspect , 0.01 ,100); glMatrixMode(GL_MODELVIEW); } void main(void) { //funkcje sterujące (będą opisane w dalszej części) glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA|GLUT_DEPTH); glutInitWindowSize(400, 400); glutInitWindowPosition (100,100); glutCreateWindow("Rysowanie kuli ze zmianą sposobu rysowania"); glMatrixMode(GL_PROJECTION); glLoadIdentity(); stan_renderowania(); glutDisplayFunc(rysujScene); glutKeyboardFunc(keyboard); glutReshapeFunc(reshape); glutMainLoop(); } }}


//RedSkal - post pod postem Warn - Scalam

  • 0

#2 juniaq

juniaq

    Początkujący

  • 12 postów

Napisano 17 09 2007 - 17:30

a jak usuniesz z tad "void" ??

void rysujScene(void)
oraz
void main(void)

czyli

void rysujScene()
oraz
void main()

??

  • 0

Zobacz więcej tematów z tagiem: język C



Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych