Compare commits

..

No commits in common. "e430e3769efd691c1494e921fbaadd2743bcc693" and "4bb6a72e4bb62a1d0c7242fb647b1e377d5dd4e8" have entirely different histories.

4 changed files with 8 additions and 16 deletions

View File

@ -44,8 +44,7 @@ fn main() -> Result<()> {
let w = 800;
let h = 600;
let bg = Color::new(0.2, 0.2, 0.2);
let mut c = Canvas::new(w, h, bg);
let mut c = Canvas::new(w, h);
let mut i = 0;
let w = w as f32;
let h = h as f32;

View File

@ -23,8 +23,7 @@ fn draw_dot(c: &mut Canvas, x: usize, y: usize) {
fn main() -> Result<()> {
let w = 200;
let h = w;
let bg = Color::new(0.2, 0.2, 0.2);
let mut c = Canvas::new(w, h, bg);
let mut c = Canvas::new(w, h);
let t = Matrix4x4::translation(0., 0.4, 0.);
let p = Tuple::point(0., 0., 0.);
let rot_hour = Matrix4x4::rotation_z(-PI / 6.);

View File

@ -4,7 +4,6 @@ use anyhow::Result;
use rtchallenge::{
canvas::Canvas,
matrices::Matrix4x4,
rays::Ray,
spheres::{intersect, Sphere},
tuples::{Color, Tuple},
@ -13,17 +12,14 @@ use rtchallenge::{
fn main() -> Result<()> {
let w = 200;
let h = w;
let bg = Color::new(0.2, 0.2, 0.2);
let mut c = Canvas::new(w, h, bg);
let mut c = Canvas::new(w, h);
let ray_origin = Tuple::point(0., 0., -5.);
let wall_z = 10.;
let wall_size = 7.;
let pixel_size = wall_size / w as f32;
let half = wall_size / 2.;
let color = Color::new(1., 0., 0.);
let mut shape = Sphere::default();
shape.transform =
Matrix4x4::shearing(1., 0., 0., 0., 0., 0.) * Matrix4x4::scaling(0.5, 1., 1.0);
let shape = Sphere::default();
for y in 0..h {
let world_y = half - pixel_size * y as f32;

View File

@ -21,8 +21,8 @@ pub struct Canvas {
}
impl Canvas {
pub fn new(width: usize, height: usize, background: Color) -> Canvas {
let pixels = vec![background; width * height];
pub fn new(width: usize, height: usize) -> Canvas {
let pixels = vec![Color::new(0., 0., 0.); width * height];
Canvas {
width,
height,
@ -78,8 +78,7 @@ mod tests {
#[test]
fn create_canvas() {
let bg = Color::new(0.0, 0.0, 0.0);
let c = Canvas::new(10, 20, bg);
let c = Canvas::new(10, 20);
assert_eq!(c.width, 10);
assert_eq!(c.height, 20);
let black = Color::new(0., 0., 0.);
@ -90,8 +89,7 @@ mod tests {
#[test]
fn write_to_canvas() {
let bg = Color::new(0.2, 0.2, 0.2);
let mut c = Canvas::new(10, 20, bg);
let mut c = Canvas::new(10, 20);
let red = Color::new(1., 0., 0.);
c.set(2, 3, red);
assert_eq!(c.get(2, 3), red);