format
This commit is contained in:
parent
5614b03bee
commit
537198580f
1 changed files with 53 additions and 53 deletions
106
mcompass/main.c
106
mcompass/main.c
|
|
@ -3,16 +3,16 @@
|
||||||
#include <Mw/Widget/OpenGL.h>
|
#include <Mw/Widget/OpenGL.h>
|
||||||
|
|
||||||
MwWidget window, opengl;
|
MwWidget window, opengl;
|
||||||
int ww, wh;
|
int ww, wh;
|
||||||
|
|
||||||
static void resize(MwWidget handle, void* user, void* client){
|
static void resize(MwWidget handle, void* user, void* client) {
|
||||||
ww = MwGetInteger(window, MwNwidth);
|
ww = MwGetInteger(window, MwNwidth);
|
||||||
wh = MwGetInteger(window, MwNheight);
|
wh = MwGetInteger(window, MwNheight);
|
||||||
|
|
||||||
MwVaApply(opengl,
|
MwVaApply(opengl,
|
||||||
MwNwidth, ww,
|
MwNwidth, ww,
|
||||||
MwNheight, wh,
|
MwNheight, wh,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
glViewport(0, 0, ww, wh);
|
glViewport(0, 0, ww, wh);
|
||||||
glMatrixMode(GL_PROJECTION);
|
glMatrixMode(GL_PROJECTION);
|
||||||
|
|
@ -22,10 +22,10 @@ static void resize(MwWidget handle, void* user, void* client){
|
||||||
glLoadIdentity();
|
glLoadIdentity();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tick(MwWidget handle, void* user, void* client){
|
static void tick(MwWidget handle, void* user, void* client) {
|
||||||
int i;
|
int i;
|
||||||
double rad;
|
double rad;
|
||||||
int cx, cy;
|
int cx, cy;
|
||||||
MwPoint p;
|
MwPoint p;
|
||||||
|
|
||||||
cx = MwGetInteger(window, MwNx) + ww / 2;
|
cx = MwGetInteger(window, MwNx) + ww / 2;
|
||||||
|
|
@ -35,24 +35,24 @@ static void tick(MwWidget handle, void* user, void* client){
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT);
|
||||||
|
|
||||||
glColor3f(0, 0, 0);
|
glColor3f(0, 0, 0);
|
||||||
for(i = 0; i < 360; i += 10){
|
for(i = 0; i < 360; i += 10) {
|
||||||
rad = i / 180.0 * M_PI;
|
rad = i / 180.0 * M_PI;
|
||||||
|
|
||||||
glBegin(GL_LINES);
|
glBegin(GL_LINES);
|
||||||
glVertex2f(cos(rad), sin(rad));
|
glVertex2f(cos(rad), sin(rad));
|
||||||
glVertex2f(cos(rad)*0.9, sin(rad)*0.9);
|
glVertex2f(cos(rad) * 0.9, sin(rad) * 0.9);
|
||||||
glEnd();
|
glEnd();
|
||||||
}
|
}
|
||||||
glBegin(GL_LINES);
|
glBegin(GL_LINES);
|
||||||
glVertex2f(-0.6, 0);
|
glVertex2f(-0.6, 0);
|
||||||
glVertex2f(0.6, 0);
|
glVertex2f(0.6, 0);
|
||||||
glVertex2f(0, -0.6);
|
glVertex2f(0, -0.6);
|
||||||
glVertex2f(0, 0.6);
|
glVertex2f(0, 0.6);
|
||||||
glEnd();
|
glEnd();
|
||||||
glBegin(GL_LINE_STRIP);
|
glBegin(GL_LINE_STRIP);
|
||||||
for(i = 0; i <= 360; i += 10){
|
for(i = 0; i <= 360; i += 10) {
|
||||||
rad = i / 180.0 * M_PI;
|
rad = i / 180.0 * M_PI;
|
||||||
glVertex2f(cos(rad)*0.2, sin(rad)*0.2);
|
glVertex2f(cos(rad) * 0.2, sin(rad) * 0.2);
|
||||||
}
|
}
|
||||||
glEnd();
|
glEnd();
|
||||||
|
|
||||||
|
|
@ -62,80 +62,80 @@ static void tick(MwWidget handle, void* user, void* client){
|
||||||
|
|
||||||
glColor3f(1, 0, 0);
|
glColor3f(1, 0, 0);
|
||||||
glBegin(GL_LINE_STRIP); /* N */
|
glBegin(GL_LINE_STRIP); /* N */
|
||||||
glVertex2f(-0.1, 0.65);
|
glVertex2f(-0.1, 0.65);
|
||||||
glVertex2f(-0.1, 0.85);
|
glVertex2f(-0.1, 0.85);
|
||||||
glVertex2f(0.1, 0.65);
|
glVertex2f(0.1, 0.65);
|
||||||
glVertex2f(0.1, 0.85);
|
glVertex2f(0.1, 0.85);
|
||||||
glEnd();
|
glEnd();
|
||||||
|
|
||||||
glColor3f(0, 0, 0);
|
glColor3f(0, 0, 0);
|
||||||
glBegin(GL_LINE_STRIP); /* W */
|
glBegin(GL_LINE_STRIP); /* W */
|
||||||
glVertex2f(-0.85, -0.1);
|
glVertex2f(-0.85, -0.1);
|
||||||
glVertex2f(-0.65, -0.05);
|
glVertex2f(-0.65, -0.05);
|
||||||
glVertex2f(-0.85, 0);
|
glVertex2f(-0.85, 0);
|
||||||
glVertex2f(-0.65, 0.05);
|
glVertex2f(-0.65, 0.05);
|
||||||
glVertex2f(-0.85, 0.1);
|
glVertex2f(-0.85, 0.1);
|
||||||
glEnd();
|
glEnd();
|
||||||
|
|
||||||
glBegin(GL_LINE_STRIP); /* S */
|
glBegin(GL_LINE_STRIP); /* S */
|
||||||
glVertex2f(-0.1, -0.85);
|
glVertex2f(-0.1, -0.85);
|
||||||
glVertex2f(0.1, -0.85);
|
glVertex2f(0.1, -0.85);
|
||||||
glVertex2f(0.1, -0.75);
|
glVertex2f(0.1, -0.75);
|
||||||
glVertex2f(-0.1, -0.75);
|
glVertex2f(-0.1, -0.75);
|
||||||
glVertex2f(-0.1, -0.65);
|
glVertex2f(-0.1, -0.65);
|
||||||
glVertex2f(0.1, -0.65);
|
glVertex2f(0.1, -0.65);
|
||||||
glEnd();
|
glEnd();
|
||||||
|
|
||||||
glBegin(GL_LINE_STRIP); /* E */
|
glBegin(GL_LINE_STRIP); /* E */
|
||||||
glVertex2f(0.85, -0.1);
|
glVertex2f(0.85, -0.1);
|
||||||
glVertex2f(0.85, 0.1);
|
glVertex2f(0.85, 0.1);
|
||||||
glVertex2f(0.65, 0.1);
|
glVertex2f(0.65, 0.1);
|
||||||
glVertex2f(0.65, -0.1);
|
glVertex2f(0.65, -0.1);
|
||||||
glEnd();
|
glEnd();
|
||||||
glBegin(GL_LINES);
|
glBegin(GL_LINES);
|
||||||
glVertex2f(0.75, -0.1);
|
glVertex2f(0.75, -0.1);
|
||||||
glVertex2f(0.75, 0.1);
|
glVertex2f(0.75, 0.1);
|
||||||
glEnd();
|
glEnd();
|
||||||
|
|
||||||
glLineWidth(1);
|
glLineWidth(1);
|
||||||
|
|
||||||
rad = atan2(-(p.y-cy),p.x-cx);
|
rad = atan2(-(p.y - cy), p.x - cx);
|
||||||
|
|
||||||
for(i = 0; i < 2; i++){
|
for(i = 0; i < 2; i++) {
|
||||||
double n = 90 / 180.0 * M_PI;
|
double n = 90 / 180.0 * M_PI;
|
||||||
if(i == 0){
|
if(i == 0) {
|
||||||
glColor3f(1, 0, 0);
|
glColor3f(1, 0, 0);
|
||||||
}else{
|
} else {
|
||||||
glColor3f(0.2, 0.2, 0.2);
|
glColor3f(0.2, 0.2, 0.2);
|
||||||
}
|
}
|
||||||
glBegin(GL_TRIANGLES);
|
glBegin(GL_TRIANGLES);
|
||||||
glVertex2f(cos(rad)*0.95, sin(rad)*0.95);
|
glVertex2f(cos(rad) * 0.95, sin(rad) * 0.95);
|
||||||
glVertex2f(cos(rad-n)*0.05, sin(rad-n)*0.05);
|
glVertex2f(cos(rad - n) * 0.05, sin(rad - n) * 0.05);
|
||||||
glVertex2f(cos(rad+n)*0.05, sin(rad+n)*0.05);
|
glVertex2f(cos(rad + n) * 0.05, sin(rad + n) * 0.05);
|
||||||
glEnd();
|
glEnd();
|
||||||
|
|
||||||
rad-= n * 2;
|
rad -= n * 2;
|
||||||
}
|
}
|
||||||
glColor3f(0.6, 0.6, 0.6);
|
glColor3f(0.6, 0.6, 0.6);
|
||||||
glBegin(GL_TRIANGLE_FAN);
|
glBegin(GL_TRIANGLE_FAN);
|
||||||
for(i = 0; i <= 360; i += 10){
|
for(i = 0; i <= 360; i += 10) {
|
||||||
rad = i / 180.0 * M_PI;
|
rad = i / 180.0 * M_PI;
|
||||||
glVertex2f(cos(rad)*0.05*2/3, sin(rad)*0.05*2/3);
|
glVertex2f(cos(rad) * 0.05 * 2 / 3, sin(rad) * 0.05 * 2 / 3);
|
||||||
}
|
}
|
||||||
glEnd();
|
glEnd();
|
||||||
|
|
||||||
MwOpenGLSwapBuffer(opengl);
|
MwOpenGLSwapBuffer(opengl);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(){
|
int main() {
|
||||||
MwLLColor col;
|
MwLLColor col;
|
||||||
int r, g, b;
|
int r, g, b;
|
||||||
|
|
||||||
MwLibraryInit();
|
MwLibraryInit();
|
||||||
|
|
||||||
window = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 150, 150,
|
window = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 150, 150,
|
||||||
MwNtitle, "mcompass",
|
MwNtitle, "mcompass",
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
opengl = MwCreateWidget(MwOpenGLClass, "opengl", window, 0, 0, 150, 150);
|
opengl = MwCreateWidget(MwOpenGLClass, "opengl", window, 0, 0, 150, 150);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue