uni update
This commit is contained in:
parent
da2b271865
commit
14a0678835
49
src/main.zig
49
src/main.zig
@ -16,19 +16,16 @@ pub fn main() !void {
|
||||
defer rl.closeWindow();
|
||||
|
||||
rl.setTargetFPS(60);
|
||||
rl.beginDrawing();
|
||||
|
||||
rl.clearBackground(rl.Color.light_gray);
|
||||
|
||||
plotGraph();
|
||||
drawAxis();
|
||||
try markAxis(allocator);
|
||||
calculateArea();
|
||||
|
||||
rl.endDrawing();
|
||||
|
||||
while (!rl.windowShouldClose()) {
|
||||
rl.beginDrawing();
|
||||
|
||||
rl.clearBackground(rl.Color.white);
|
||||
|
||||
plotGraph();
|
||||
drawAxis();
|
||||
try markAxis(allocator);
|
||||
|
||||
rl.endDrawing();
|
||||
}
|
||||
}
|
||||
@ -142,6 +139,34 @@ fn adjustForGridSystem(input_vector: rl.Vector2) rl.Vector2 {
|
||||
return new_vector;
|
||||
}
|
||||
|
||||
fn calculateArea() void {
|
||||
rl.drawText("Test", SCREENWIDTH - 75, 25, 20, rl.Color.red);
|
||||
fn calculateArea(val: f32) !void {
|
||||
var buf: u8[20] = undefined;
|
||||
|
||||
const txt = try std.fmt.bufPrintZ(&buf, "{}", .{val});
|
||||
rl.drawText(txt, SCREENWIDTH - 75, 25, 20, rl.Color.red);
|
||||
}
|
||||
|
||||
const SimpsonsError = error{
|
||||
InvalidParValue,
|
||||
};
|
||||
|
||||
fn simpsonsRule(start: f32, end: f32, n: usize) !f32 {
|
||||
if (start > end) return SimpsonsError.InvalidParValue;
|
||||
|
||||
const h = (end - start) / @as(f32, @floatFromInt(n));
|
||||
|
||||
var sum: f32 = getY(start) + getY(end);
|
||||
|
||||
var i: usize = 1;
|
||||
|
||||
// we iterate through amount of subintervals
|
||||
while (i < n) : (i += 1) {
|
||||
// calculate x of the slice we're adding (start + )
|
||||
const x = start + i * h;
|
||||
|
||||
// determine weights 4 for odd, 2 for even
|
||||
sum += if (x % 2 == 0) 2 * getY(x) else 4 * getY(x);
|
||||
}
|
||||
|
||||
return (h / 3.0) * sum;
|
||||
}
|
||||
|
Reference in New Issue
Block a user