Added icosahedron

This commit is contained in:
Adog64 2023-12-01 18:00:13 -05:00
parent 9a710c4687
commit 6249576d88
4 changed files with 93 additions and 31 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -2,6 +2,8 @@
#include <stdlib.h>
#include <stdbool.h>
#include <math.h>
#include <GL/glew.h>
#include <GLFW/glfw3.h>
@ -71,31 +73,86 @@ int main()
vec3s up = {0.0f, 1.0f, 0.0f};
static const GLfloat g_vertex_buffer_data[] = {
// BAC
1.0f, 0.0f, 2.0f,
2.0f, 1.0f, 0.0f,
BAC
BCH
BHF
BFG
BGA
AIC
ICD
CDH
DHJ
HJF
JFL
FLG
LGE
GEA
EAI
KEI
KID
KDJ
KJL
KLE
0.0f, 2.0f, 1.0f,
// BCH
1.0f, 0.0f, 2.0f,
0.0f, 2.0f, 1.0f,
-1.0f, 0.0f, 2.0f,
// BHF
1.0f, 0.0f, 2.0f,
-1.0f, 0.0f, 2.0f,
0.0f, -2.0f, 1.0f,
// BFG
1.0f, 0.0f, 2.0f,
0.0f, -2.0f, 1.0f,
2.0f, -1.0f, 0.0f,
// BGA
1.0f, 0.0f, 2.0f,
2.0f, -1.0f, 0.0f,
2.0f, 1.0f, 0.0f,
// AIC
2.0f, 1.0f, 0.0f,
0.0f, 2.0f, -1.0f,
0.0f, 2.0f, 1.0f,
// ICD
0.0f, 2.0f, -1.0f,
0.0f, 2.0f, 1.0f,
-2.0f, 1.0f, 0.0f,
// CDH
0.0f, 2.0f, 1.0f,
-2.0f, 1.0f, 0.0f,
-1.0f, 0.0f, 2.0f,
// DHJ
-2.0f, 1.0f, 0.0f,
-1.0f, 0.0f, 2.0f,
-2.0f, -1.0f, 0.0f,
// HJF
-1.0f, 0.0f, 2.0f,
-2.0f, -1.0f, 0.0f,
0.0f, -2.0f, 1.0f,
// JFL
-2.0f, -1.0f, 0.0f,
0.0f, -2.0f, 1.0f,
0.0f, -2.0f, -1.0f,
// FLG
0.0f, -2.0f, 1.0f,
0.0f, -2.0f, -1.0f,
2.0f, -1.0f, 0.0f,
// LGE
0.0f, -2.0f, -1.0f,
2.0f, -1.0f, 0.0f,
1.0f, 0.0f, -2.0f,
// GEA
2.0f, -1.0f, 0.0f,
1.0f, 0.0f, -2.0f,
2.0f, 1.0f, 0.0f,
// EAI
1.0f, 0.0f, -2.0f,
2.0f, 1.0f, 0.0f,
0.0f, 2.0f, -1.0f,
// KEI
-1.0f, 0.0f, -2.0f,
1.0f, 0.0f, -2.0f,
0.0f, 2.0f, -1.0f,
// KID
-1.0f, 0.0f, -2.0f,
0.0f, 2.0f, -1.0f,
-2.0f, 1.0f, 0.0f,
// KDJ
-1.0f, 0.0f, -2.0f,
-2.0f, 1.0f, 0.0f,
-2.0f, -1.0f, 0.0f,
// KJL
-1.0f, 0.0f, -2.0f,
-2.0f, -1.0f, 0.0f,
0.0f, -2.0f, -1.0f,
// KLE
-1.0f, 0.0f, -2.0f,
0.0f, -2.0f, -1.0f,
1.0f, 0.0f, -2.0f
};
GLuint vertexbuffer;
@ -107,37 +164,42 @@ int main()
printf("Entering main loop\n");
float theta = 0.0f;
do
{
glClear( GL_COLOR_BUFFER_BIT );
if( glfwGetKey(window, GLFW_KEY_W) == GLFW_PRESS )
{
eye.z -= 0.05f;
//eye.z -= 0.05f;
}
if( glfwGetKey(window, GLFW_KEY_S) == GLFW_PRESS )
{
eye.z += 0.05f;
// eye.z += 0.05f;
}
if( glfwGetKey(window, GLFW_KEY_D) == GLFW_PRESS )
{
eye.x += 0.05f;
theta += 0.05f;
}
if( glfwGetKey(window, GLFW_KEY_A) == GLFW_PRESS )
{
eye.x -= 0.05f;
theta -= 0.05f;
}
if( glfwGetKey(window, GLFW_KEY_SPACE) == GLFW_PRESS )
{
eye.y += 0.05f;
// eye.y += 0.05f;
}
if( glfwGetKey(window, GLFW_KEY_LEFT_SHIFT) == GLFW_PRESS )
{
eye.y -= 0.05f;
// eye.y -= 0.05f;
}
eye.x = (float)sin((double)theta);
eye.z = (float)cos((double)theta);
center = glms_vec3_add(eye, direction);
// center = glms_vec3_add(eye, direction);
mat4s view = glms_lookat(eye, center, up);
mat4s model = glms_mat4_identity();
@ -159,7 +221,7 @@ int main()
(void*)0
);
glDrawArrays(GL_TRIANGLES, 0, 12*3);
glDrawArrays(GL_TRIANGLES, 0, 20*3);
glDisableVertexAttribArray(0);
glfwSwapBuffers(window);