intmain(){ auto aspect_radio = 16.0/9.0; //长宽比 int image_width = 400;
//计算图像的高度,并确保图像的高度至少为1(单位长度) int image_height = int (image_width / aspect_radio); image_height = (image_height < 1) ? 1 : image_height;
//确保视口的宽高比和图像的宽高比一样 auto focal_length = 1.0; auto viewport_height = 2.0; auto viewport_width = viewport_height * (double(image_width)/image_height); auto camera_center = point3(0,0,0);
//设置视口向量与单位长度 auto viewport_u = vec3(viewport_width,0,0); auto viewport_v = vec3(0,-viewport_height,0); auto pixel_delta_u = viewport_u/image_width; auto pixel_delta_v = viewport_v/image_height;
//计算像素点位 auto viewport_upper_left = camera_center - vec3(0,0,focal_length) - viewport_v/2 - viewport_u/2; auto pixel00_loc = viewport_upper_left + 0.5*(pixel_delta_u+pixel_delta_v);