summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRosyid Haryadi <rosyid_haryadi@protonmail.com>2023-12-21 00:50:13 +0700
committerRosyid Haryadi <rosyid_haryadi@protonmail.com>2023-12-21 00:50:13 +0700
commitf85e511f3a7bb974fdbfc289f6706187d2b023d9 (patch)
tree13649c90d2a5a8181088655757533d08e20a61ae
parent8dd06cebfd4448679210ff732869499ac1f06145 (diff)
some useless modifications
-rw-r--r--src/main.c52
1 files changed, 37 insertions, 15 deletions
diff --git a/src/main.c b/src/main.c
index 1d5fc9e..5948ce8 100644
--- a/src/main.c
+++ b/src/main.c
@@ -2,6 +2,7 @@
#include <stdio.h>
#include "raylib.h"
+#include "raymath.h"
typedef struct Config {
@@ -19,17 +20,25 @@ typedef struct Line {
Color color;
} Line;
+typedef struct Object {
+ int posX;
+ int posY;
+ float radius;
+ Color color;
+ float charge;
+} Object;
+
typedef struct VectorField {
int colSize;
int rowSize;
int spacing;
- Line **lines; // col then row
+ Line **lines;
} VectorField;
void Initialize(Config config);
void InitializeVectorField(VectorField *vectorField, int colSize, int rowSize);
-void doDrawing(VectorField *vectorField, int colSize, int rowSize);
-void doUpdate();
+void doDrawing(VectorField *vectorField, int colSize, int rowSize, Object *object);
+void doUpdate(VectorField *vectorField, Object *object);
int main(void)
{
@@ -55,10 +64,18 @@ int main(void)
};
InitializeVectorField(&vectorField, colSize, rowSize);
+ Object positiveCharge = {
+ .posX = config.ORIGIN_X,
+ .posY = config.ORIGIN_Y,
+ .radius = 20,
+ .color = RED,
+ .charge = 10
+ };
+
while (!WindowShouldClose())
{
- doUpdate();
- doDrawing(&vectorField, colSize, rowSize);
+ doUpdate(&vectorField, &positiveCharge);
+ doDrawing(&vectorField, colSize, rowSize, &positiveCharge);
}
CloseWindow();
@@ -76,20 +93,24 @@ void MemAllocFailed(char *source) {
exit(42);
}
+float getRndAngle() {
+ float nMax = 360;
+ return (float)rand() / ((float)RAND_MAX / nMax); // NOLINT(cert-msc30-c, cert-msc50-cpp)
+}
+
void InitializeVectorField(VectorField *vectorField, int colSize, int rowSize) {
vectorField->lines = malloc(rowSize * sizeof(Line*));
for (int i = 0; i < rowSize; i++) {
vectorField->lines[i] = malloc(colSize * sizeof(Line));
for (int j = 0; j < colSize; j++) {
+ Vector2 start = {
+ (float)((j + 1) * vectorField->spacing),
+ (float)((i + 1) * vectorField->spacing)
+ };
+ Vector2 end = {start.x + 5, start.y - 5};
Line line = {
- .start = {
- (float)((j + 1) * vectorField->spacing),
- (float)((i + 1) * vectorField->spacing)
- },
- .end = {
- (float)((j + 1) * vectorField->spacing + 10),
- (float)((i + 1) * vectorField->spacing - 10)
- },
+ .start = start,
+ .end = end,
.color = WHITE
};
vectorField->lines[i][j] = line;
@@ -97,11 +118,11 @@ void InitializeVectorField(VectorField *vectorField, int colSize, int rowSize) {
}
}
-void doUpdate() {
+void doUpdate(VectorField *vectorField, Object *object) {
float dt = GetFrameTime();
}
-void doDrawing(VectorField *vectorField, int colSize, int rowSize) {
+void doDrawing(VectorField *vectorField, int colSize, int rowSize, Object *object) {
BeginDrawing();
ClearBackground(BLACK);
@@ -111,6 +132,7 @@ void doDrawing(VectorField *vectorField, int colSize, int rowSize) {
DrawLineV(vectorField->lines[i][j].start, vectorField->lines[i][j].end, vectorField->lines[i][j].color);
}
}
+ DrawCircle(object->posX, object->posY, object->radius, object->color);
EndDrawing();
} \ No newline at end of file