raytracer fr eine sphere ist fertig, aber das gerenderte bild sieht komisch aus, als wrden zeilen verschoben werden und keine kugel ist zu erkennen. ausserdem gibt es jetzt vektor operationen wie das skalarprodukt.

This commit is contained in:
any
2026-07-26 17:54:45 +02:00
parent 361eaefdb5
commit 72d683c1f2
11 changed files with 150 additions and 14 deletions
+24
View File
@@ -0,0 +1,24 @@
#include "structs.h"
#include "math.h"
vec3 vec3Add(vec3 a, vec3 b) {
return (vec3){a.x + b.x, a.y + b.y, a.z + b.z};
}
vec3 vec3Subtract(vec3 a, vec3 b) {
return (vec3){a.x - b.x, a.y - b.y, a.z - b.z};
}
vec3 vec3Scale(vec3 vector, double scalar) {
return (vec3){vector.x * scalar, vector.y * scalar, vector.z * scalar};
}
double vec3Product(vec3 a, vec3 b) {
return (a.x * b.x + a.y * b.y + a.z * b.z);
}
double vec3Length(vec3 vector) {
return sqrt(vector.x * vector.x + vector.y * vector.y + vector.z * vector.z);
}
vec3 vec3Normalize(vec3 vector) {
double length = vec3Length(vector);
return (vec3){vector.x / length, vector.y / length, vector.z / length};
}
vec3 vec3Cross(vec3 a, vec3 b) {
return (vec3){a.y * b.z - a.z * b.y, a.z * b.x - a.x * b.z, a.x * b.y - a.y * b.x};
}