Projekt.zip (etwas geändert!) http://www.4yit.de/ip/download/GLp_coord
2.zip
das Template aus c1) gefällt mir ganz gut ... hab mal etwas in
der GLViewController umgespielt...
in die h kommt noch eine Variable cc für die Farbänderung:
@interface GLViewController :
UIViewController <GLViewDelegate>
{
GLfloat cc;
}
und hier die
//
// GLViewController.m
// Untitled
//
// Created by iZero MrZ on 13.12.09.
// Copyright 4yIT.de 2009. All rights reserved.
//
#import "GLViewController.h"
#import "ConstantsAndMacros.h"
#import "OpenGLCommon.h"
@implementation GLViewController
- (void)drawView
UIView
*)theView
{
// Projection nicht reseten nur ndern
glMatrixMode(GL_PROJECTION);
glRotatef(0.5, 0.0, 1.0, 0.0);
glTranslatef(0.0, 0.0, 0.01); //Camview ndern indem die ganze
Welt verschoen wird
// glLoadIdentity(); // hier nicht lschen
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
// --------------START DRAW
glColor4f(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// lines
const GLfloat lineh[] = {
-10.0, 0.0,
0.0,
10.0, 0.0,
0.0
};
const GLfloat linev[] = {
0.0, 0.0,
-10.0,
0.0, 0.0, 10.0
};
glLoadIdentity();
glVertexPointer(3, GL_FLOAT, 0, lineh);
glEnableClientState(GL_VERTEX_ARRAY);
if ( cc >= 1.0) { cc = 0.1; };
cc = cc + 0.01;
for (int i = -10; i <= 10; i++) {
glLoadIdentity();
glColor4f(cc, 1.0, 0.0, 1.0);
glTranslatef(0.0, 0.0, 0.0 - (GLfloat)i);
glVertexPointer(3, GL_FLOAT, 0, lineh);
glDrawArrays(GL_LINES, 0, 2);
glLoadIdentity();
glColor4f(cc, 1.0, 0.0, 1.0);
glTranslatef(0.0 - (GLfloat)i, 0.0, 0.0);
glVertexPointer(3, GL_FLOAT, 0, linev);
glDrawArrays(GL_LINES, 0, 2);
glLoadIdentity();
}
glDisableClientState(GL_VERTEX_ARRAY);
// Punkte und linien ____________________
const GLfloat points[] = {
0.0, 0.0,
0.0, 1.0, 0.0, 0.0,
1.0, // First point, Red
1.0, -1.0,
0.0, 0.0, 1.0, 0.0, 1.0,
// Second point, Green
-1.0, -1.0,
0.0, 0.0, 0.0, 1.0, 1.0, //
Third point, Blue
-1.0, 1.0,
0.0, 1.0, 1.0, 0.0,
1.0 // Fourth point, Yellow
};
glLoadIdentity();
glEnable(GL_POINT_SMOOTH);
glPointSize(5.0);
glTranslatef(0.0, 0.0, 0.0);
glVertexPointer(3, GL_FLOAT, 28, points);
glColorPointer(4, GL_FLOAT, 28,
&points[3]);
glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_VERTEX_ARRAY);
glDrawArrays(GL_POINTS, 0, 1);
// glDrawArrays(GL_LINES, 0, 4); // Linien mit den gleichen
Coord der Punkte
// glDrawArrays(GL_LINE_STRIP, 0, 4);
// glDrawArrays(GL_LINE_LOOP, 0, 4);
glDisableClientState(GL_COLOR_ARRAY);
glDisableClientState(GL_VERTEX_ARRAY);
// Dreieck
const GLfloat Dreieck[] = {
0.0, 1.0,
0.0, // Triangle top centre
1.0, -1.0,
0.0, // bottom right
-1.0, -1.0,
0.0 // bottom left
};
glLoadIdentity();
// glScalef(2.0, 2.0, 2.0);
glRotatef(0.0, 0.0, 0.0, 0.0);
glTranslatef(0.0, 0.0, -0.2);
glColor4f(cc, 0.0, 1.0, 1.0);
// glColorPointer(4, GL_FLOAT, 0,
DreieckFare); // NEW
//glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, Dreieck);
glDrawArrays(GL_TRIANGLES, 0, 3);
glDisableClientState(GL_VERTEX_ARRAY);
}
-(void)setupView
GLView*)view
{
const GLfloat zNear = 0.01, zFar = 1000.0, fieldOfView =
45.0;
GLfloat size;
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
size = zNear * tanf(DEGREES_TO_RADIANS(fieldOfView) /
2.0);
CGRect rect = view.bounds;
glFrustumf(-size, size, -size / (rect.size.width /
rect.size.height), size /
(rect.size.width /
rect.size.height), zNear, zFar);
glViewport(0, 0, rect.size.width, rect.size.height);
glRotatef(15.0, 0.0, 1.0, 0.0);
glTranslatef(0.0, -1.0, -5.0); //Camview ndern indem die
ganze Welt verschoen wird
// glLoadIdentity(); // hier nicht lschen
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
NSLog(@"init View");
}
- (void)dealloc
{
[super dealloc];
}
@end
Das Ergebnis kann man im Bild sehen.... und auch das sich die
Projektionbewegt und nicht die Objekte
Achtung an die Smiles hier im code denken ... sry hatte jetzt
keinen Bog die anzupassen ... sollte Duppelpunkt und Klammer auf
sein 
achso und den Text kann man via IB setzen