Mindstormsforum Dateiupload | Links | Lexikon | NXT Shop | Wettbewerbe |    Seitenreport - Die SEO und Website Analyse

bild
bild
Unbeantwortete Themen | Aktive Themen Aktuelle Zeit: 22. Aug 2014 18:40


Auf das Thema antworten  [ 3 Beiträge ] 
NXC OpenGl 3D Engine Demo gesteuert von einem Wii Nunchuck 
Autor Nachricht
Online
Administrator
Administrator
Benutzeravatar

Registriert: 11. Jan 2008 14:28
Beiträge: 1956
Wohnort: Aub
Beitrag NXC OpenGl 3D Engine Demo gesteuert von einem Wii Nunchuck
Mein Werk von heute/gestern:


<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/953a7BSA6Vc?fs=1&hl=de_DE"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/953a7BSA6Vc?fs=1&hl=de_DE" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>
Auf mein Homepage stell ich auchs noch.

_________________
Meine Homepage


9. Okt 2010 18:19
Profil ICQ Website besuchen
Schreibt viel
Schreibt viel

Registriert: 3. Dez 2009 16:52
Beiträge: 138
Beitrag 
krass! :shock:

wie hast du dass mit dem 3D würfeln hinbekommen


10. Okt 2010 19:03
Profil
Online
Administrator
Administrator
Benutzeravatar

Registriert: 11. Jan 2008 14:28
Beiträge: 1956
Wohnort: Aub
Beitrag 
Mit den 3D Befehlen von NXC:
http://www.mindstormsforum.de/viewtopic.php?t=5758
Mein Programm: (ich werde nochmal eine schönere Version hochladen)
Code:
byte CMDNunchukInit[] = {0xA4, 0x40, 0x00};
byte CMDNunchukWrite[] = {0xA4, 0x00};
byte CMDNunchukRead[] = {0xA4};

byte nbytes;
byte outbuf[];

// port is the NXT port
// i2c_cmd is the nunchuk internal address register
// at i2c_cmd=0...5 are 6 Byte of sensor values
// at i2c_cmd=0x20 ... 0x2F  you get 16 Byte of calibration data
sub NunchukGetParamter(byte port, byte i2c_cmd)
{
  // Initialize the Nunchuk
  SetSensorLowspeed(port);
  LowspeedWrite(port, 0, CMDNunchukInit); //ask for 0 bytes
  while(LowspeedStatus(port, nbytes)>0);

  // Wait(1) is needless, the NXT command interpreter delays next i2c access 3ms

  CMDNunchukWrite[1] =i2c_cmd; //at 0x00: 6 Bytes of sensor values
  LowspeedWrite(port, 0, CMDNunchukWrite);   // write Nunchuk register address
  while(LowspeedStatus(port, nbytes)>0);

  byte count = 6;
  LowspeedWrite(port, count, CMDNunchukRead); //ask for count bytes
  while(LowspeedStatus(port, nbytes)>0);

  if(nbytes == count){
    LowspeedRead(port, count, outbuf)  //read data from buffer
    for(int i=0; i<count; i++ ){
      outbuf[i]=(outbuf[i]^0x17) + 0x17;
    }
  }
  else {
    ArrayInit(outbuf,0,0);    //error
  }
}
int angleX, angleY;
task main()
{
// Initialize the 3D engine...
glInit();
// Create a box, this is the first object which will be object id 0...
glBox(GL_POLYGON, 10, 20, 30);
// Create a box, this is the second object which will be object id 1...
glBox(GL_POLYGON, 30,40,50);
//glSetAngleX(0);//100
//glSetAngleY(0);//125
angleX = 0;
angleY = 0;
while (true)
{
    /*
    // Setup for rendering...
    glBeginRender();
    // Call the object with id 0...
    glCallObject(0);

    glObjectAction(0, GL_ROTATE_X, angleX);
   
    // Call the object with id 1...
    glCallObject(1);
    glObjectAction(1, GL_ROTATE_Y, angleY);
    // Finish, clear the screen, rotate and render the called objects...
    glFinishRender();
    */
    NunchukGetParamter(S1, 0x00);
    if (ArrayLen(outbuf)==6)
    {
        glBeginRender();
        glCallObject(0);
        //NumOut(0,0,(outbuf[0]),false);
        //NumOut(0,10,(outbuf[1]),false);
        glObjectAction(0, GL_ROTATE_Y, (225-outbuf[0]));
        glObjectAction(0, GL_ROTATE_X, (outbuf[1]));

        glCallObject(1);
        glObjectAction(1, GL_ROTATE_Y, ((225-outbuf[2])*3));
        glObjectAction(1, GL_ROTATE_X, (outbuf[3])*3);
   
        glFinishRender();
        //Wait(1000);
    }
}
}

_________________
Meine Homepage


10. Okt 2010 19:18
Profil ICQ Website besuchen
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Auf das Thema antworten   [ 3 Beiträge ] 

Wer ist online?

Mitglieder in diesem Forum: Bussard und 10 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Impressum Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Deutsche Übersetzung durch phpBB.de