summaryrefslogtreecommitdiff
path: root/src/screen
diff options
context:
space:
mode:
authorNathan Reiner <nathan@nathanreiner.xyz>2025-02-12 20:25:35 +0100
committerNathan Reiner <nathan@nathanreiner.xyz>2025-02-13 10:02:02 +0100
commit7ca9831f85db448641141ac40770af6baa8b512f (patch)
treeb4c54a8acb866134e1bfc1a4df7b27cad0d9bc7a /src/screen
parentf0aa5d3fafdbfde016f6ebadc96d9fa8cd693d45 (diff)
graphics: fix line offset
Diffstat (limited to 'src/screen')
-rw-r--r--src/screen/main.zig33
1 files changed, 12 insertions, 21 deletions
diff --git a/src/screen/main.zig b/src/screen/main.zig
index 2cb8c03..0ee7e17 100644
--- a/src/screen/main.zig
+++ b/src/screen/main.zig
@@ -31,41 +31,32 @@ pub fn main() !void {
const center_x = (buffer.current.width / 2);
const center_y = (buffer.current.height / 2);
- var line = graphics.Line {
+ var curve = graphics.Curve {
.start = .{ .x = center_x, .y = center_y },
+ .middle = .{ .x = center_x, .y = center_y + 150 },
.end = .{ .x = center_x + 110 , .y = center_y + 100 },
.color = .{ .red = 0xff, .green = 0, .blue = 0 },
};
var last_duration: f64 = 0;
var delta: f64 = 0;
- var angle: f64 = 0;
while (true) {
const start = try std.time.Instant.now();
const canvas = buffer.canvas();
- canvas.fill(.{ .red = 0x25, .green = 0x25, .blue = 0x25 });
+ canvas.fill(.{ .red = 0x5, .green = 0x5, .blue = 0x5 });
- (graphics.Box {
- .x = center_x - 100,
- .y = center_y - 100,
- .width = 200,
- .height = 200,
- .radius = 100,
- .color = .{ .red = 0xff, .green = 0xff, .blue = 0xff },
- }).render(&canvas);
+ //(graphics.Box {
+ // .x = center_x - 100,
+ // .y = center_y - 100,
+ // .width = 200,
+ // .height = 200,
+ // .radius = 100,
+ // .color = .{ .red = 0xff, .green = 0xff, .blue = 0xff },
+ //}).render(&canvas);
- line.render(&canvas);
- const cos = @cos(std.math.degreesToRadians(angle));
- const sin = @sin(std.math.degreesToRadians(angle));
- line.end.x = @intCast(@as(i64, @intCast(center_x)) + @as(i64, @intFromFloat(100 * cos)));
- line.end.y = @intCast(@as(i64, @intCast(center_y)) + @as(i64, @intFromFloat(100 * sin)));
-
- angle += delta;
- if (angle > 360) {
- angle = 0;
- }
+ curve.render(&canvas);
const end = try std.time.Instant.now();
const duration: f64 = @floatFromInt(end.since(start));