updates
This commit is contained in:
parent
fcff945372
commit
da2b271865
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
.zig-cache/
|
||||
zig-out/
|
15
src/main.zig
15
src/main.zig
@ -7,7 +7,6 @@ const SCREENHEIGHT = 1080;
|
||||
const SCALE = 50;
|
||||
|
||||
pub fn main() !void {
|
||||
// std.debug.print("{d}\n", .{SCREENWIDTH / 2});
|
||||
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
||||
defer _ = gpa.deinit();
|
||||
const allocator = gpa.allocator();
|
||||
@ -19,19 +18,17 @@ pub fn main() !void {
|
||||
rl.setTargetFPS(60);
|
||||
rl.beginDrawing();
|
||||
|
||||
rl.clearBackground(rl.Color.white);
|
||||
rl.clearBackground(rl.Color.light_gray);
|
||||
|
||||
plotGraph();
|
||||
drawAxis();
|
||||
try markAxis(allocator);
|
||||
calculateArea();
|
||||
|
||||
rl.endDrawing();
|
||||
|
||||
while (!rl.windowShouldClose()) {
|
||||
rl.beginDrawing();
|
||||
// DEBUG
|
||||
// const pos = rl.getMousePosition();
|
||||
// std.debug.print("x: {d} y:{}\n", .{ pos.x, pos.y });
|
||||
rl.endDrawing();
|
||||
}
|
||||
}
|
||||
@ -50,7 +47,7 @@ fn markAxis(allocator: std.mem.Allocator) !void {
|
||||
const font_size = 20;
|
||||
const start_x = SCREENWIDTH / 2;
|
||||
const start_y = SCREENHEIGHT / 2;
|
||||
const radius = SCALE / 15;
|
||||
const radius = 50 / 15;
|
||||
var buf: [20]u8 = undefined;
|
||||
|
||||
var cnt: usize = 0;
|
||||
@ -131,7 +128,7 @@ fn plotGraph() void {
|
||||
|
||||
// f(x)
|
||||
fn getY(x: f32) !f32 {
|
||||
return math.calculate(x, -3, .Power);
|
||||
return try math.calculate(x, 2, .Power) / -2 + 6;
|
||||
}
|
||||
|
||||
fn adjustForGridSystem(input_vector: rl.Vector2) rl.Vector2 {
|
||||
@ -144,3 +141,7 @@ fn adjustForGridSystem(input_vector: rl.Vector2) rl.Vector2 {
|
||||
|
||||
return new_vector;
|
||||
}
|
||||
|
||||
fn calculateArea() void {
|
||||
rl.drawText("Test", SCREENWIDTH - 75, 25, 20, rl.Color.red);
|
||||
}
|
||||
|
23
src/math.zig
23
src/math.zig
@ -15,11 +15,10 @@ pub fn calculate(first: f32, second: f32, op: MathOperation) !f32 {
|
||||
return first / second;
|
||||
},
|
||||
.Power => {
|
||||
if (first == 0) std.debug.print("KOK", .{});
|
||||
if (first == 0 and second < 0) {
|
||||
return error.InvalidParam;
|
||||
}
|
||||
return pow(first, @intFromFloat(second));
|
||||
return std.math.pow(f32, first, second);
|
||||
},
|
||||
.Root => {
|
||||
if (first < 0 or second < 0) {
|
||||
@ -37,23 +36,3 @@ fn abs(a: f32) f32 {
|
||||
|
||||
return a;
|
||||
}
|
||||
|
||||
fn pow(a: f32, b: i32) f32 {
|
||||
var res: f32 = 1.0;
|
||||
var n: usize = undefined;
|
||||
var f: f32 = undefined;
|
||||
|
||||
if (b < 0) {
|
||||
f = 1 / a;
|
||||
n = @intCast(-b);
|
||||
} else {
|
||||
f = a;
|
||||
n = @intCast(b);
|
||||
}
|
||||
|
||||
for (0..n) |_| {
|
||||
res *= f;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
Reference in New Issue
Block a user