
计算机图形学
北岛寒沫
一生温暖纯良,不舍爱与自由
展开
-
中点画圆法(计算机图形学)C++实现
#include<iostream>#include<graphics.h>#include<conio.h>using namespace std;void MidPoint_Circle(const int& x0, const int& y0, const int& r){ initgraph(800, 640); int d = 1 - r, x = 0, y = r; while (x <= y) { cou原创 2022-05-24 10:39:47 · 1179 阅读 · 0 评论 -
抛物样条曲线(最详细简单的解析)
文章目录前言1.抛物样条曲线要解决一个什么问题?2.分段的参数化曲线构造3.完整曲线的构造前言抛物样条曲线是计算机曲线绘制中的一个重要的基础内容,但是很多教材和网课上对于这一部分的内容都是直接不说原因地给出大量公式,就直接劝退了包括我在内的很多小伙伴。那么今天我就通过我的理解和认识,用尽可能容易理解的方式与大家谈一谈抛物样条曲线这一部分的内容,希望能帮到大家。1.抛物样条曲线要解决一个什么问题?在学习抛物样条曲线之前,首先我们来思考一下关于抛物样条曲线,我们需要解决的问题是什么?我们想要解决的问题原创 2022-05-23 18:57:50 · 1930 阅读 · 1 评论 -
计算机图形学 算法汇总(期末复习)
文章目录一、光栅图形扫描转换算法1.扫描转换一个点1.1.自动取整法1.2.四舍五入法2.扫描转换一条直线2.1.数值微分(DDA)算法2.2.中点画线算法2.3.Bresenham算法3.扫描转换一个圆3.1.中点画圆法3.2.Bresenham画圆法4.扫描转换一个椭圆(Bresenham算法)一、光栅图形扫描转换算法1.扫描转换一个点1.1.自动取整法算法描述:直接取各个点坐标的整数部分。算法举例:将点P(1.7,0.8)经过自动取整,转化为点(1,0)。1.2.四舍五入法算法描述原创 2022-05-22 10:45:39 · 6571 阅读 · 0 评论 -
计算机图形学:曲线曲面基本理论
1.几何造型介绍及曲线曲面的参数表示1.1.几何造型介绍计算机图形学可以分为三大部分内容,分别是光栅图形显示、几何造型技术和真实感图形显示。①光栅图形学就是研究如何通过计算机的光栅显示屏来显示图形的方法,是图形学的基础。②几何造型技术是研究在计算机中如何表达物体模型的技术。描述物体的模型可以分为线框模型、曲面模型和实体模型。线框模型通过顶点和棱边来表示物体曲面模型只描述物体的表面之间的连接关系,而不描述物体内部的点的属性。③实体模型不但对物体的外观进行描述同时也描述物体的内点。随着计算机图形学的原创 2022-05-13 11:39:07 · 2891 阅读 · 0 评论 -
贝塞尔曲线绘制(C++实现,计算机图形学)
#include<iostream>#include<graphics.h>#include<conio.h>#include<vector>using namespace std;void GetBezier(const int* xArray, const int* yArray, const unsigned& n){ initgraph(1000, 700); for (float t = 0; t <= 1; t +=原创 2022-05-12 18:15:38 · 2379 阅读 · 1 评论 -
Liang-Barsky直线段裁剪算法-C++实现(计算机图形学作业)
//梁式直线裁剪算法的程序,由于该方法用编程实现非常简单,在介绍时稍微简略一些void Liang_Barsky(const int& x1, const int& y1, const int& x2, const int& y2){ //首先分别计算出四个P值和四个Q值,如果满足两种算法停止条件的一种则可以直接终止算法而无序计算U值,从而提高效率节约空间 int p1, p2, p3, p4; int q1, q2, q3, q4; p1 = x1 - x2;原创 2022-04-12 16:32:29 · 1590 阅读 · 0 评论 -
CS直线裁剪算法_C++实现(计算机图形学作业)
#include<iostream>#include<graphics.h>#include<conio.h>using namespace std;//分别用四个符号常量记录四个边界的编号,相当于C语言中的define宏定义const unsigned TOP = 8;const unsigned BOTTOM = 4;const unsigned RIGHT = 2;const unsigned LEFT = 1;static unsigned x原创 2022-04-09 15:42:16 · 1953 阅读 · 0 评论 -
计算机图形学 通用型Bresenham算法 C++实现
//优化后的Bresenham算法,能够处理斜率不存在,斜率为负数,斜率绝对值大于一等情况,并且可以根据需要自动调整两点顺序,具有良好的通用性//使用只需要输入两点的横纵坐标值即可void Bresenham(const unsigned& x1, const unsigned& y1, const unsigned& x2, const unsigned& y2){ int dx = x2 - x1, dy = y2 - y1; enum MainChangeDi原创 2022-03-20 23:50:00 · 1045 阅读 · 0 评论 -
数值微分法DDA画直线(C++实现)计算机图形学
//经过适配处理的数值微分算法,可以绘制斜率为零、斜率不存在、斜率绝对值大于一等情况下的直线,只需输入两个点的横纵坐标即可void DDA(const unsigned& x1, const unsigned& y1, const unsigned& x2, const unsigned& y2){ int dx(x2 - x1), dy(y2 - y1);//定义两个变量分别记录x和y的变化量 enum MainDirection { x, y };//定义一个枚举原创 2022-03-20 19:20:39 · 1314 阅读 · 0 评论 -
凸多边形的线消隐算法(C++实现)计算机图形学作业
//实验名称:带有线消隐的三维物体投影绘制//功 能:对于用户输入的三维物体空间信息与选择的投影面(三个坐标面之一),绘制该三维物体在该投影面上的带消隐的投影图//编译环境:Visual Studio 2022,EasyX_20220116#include<iostream>#include<graphics.h>#include<conio.h>#include<vector>using namespace std;//定义一个原创 2022-05-06 19:21:23 · 1373 阅读 · 0 评论 -
通用的三视图和正等轴测图的绘制(C++实现)
//实验名称:三视图和正轴测图的绘制//功 能:对于用户输入的有序空间坐标点数组,绘制这些点所组成的三维立体图形的三视图和正等轴测图(函数可以通用,本题中为了演示选择了一个固定的三维物体)//编译环境:Visual Studio 2022,EasyX_20220116#include<iostream>#include<graphics.h>#include<conio.h>using namespace std;const int gap =原创 2022-05-06 18:23:17 · 3370 阅读 · 0 评论 -
计算机图形学-二维图形变换 笔记总结与代码实战
二维图形绘制话不多说,我们来介绍一下知识点~1.向量基础知识为什么向量如此重要:在计算机图形学中主要处理三维世界中的物体对象,因此所有需要描绘的对象都有形状、位置和方向等属性。对于这样的特征,需要编写合适的计算机程序来大致描述这些对象,并描述围绕在物体周围的光线强度,计算出最终在显示器上每一个像素的值,而这些都需要使用到向量分析和图形变换。所有点和向量都是基于某一个坐标系定义的。坐标系可以分为二维坐标系和三维坐标系,三维坐标系又可以分为左手坐标系和右手坐标系。从几何的角度看,向量是具有长度和方向的实原创 2022-04-22 15:00:35 · 9161 阅读 · 3 评论 -
Weiler-Atherton多边形裁剪算法(C++实现)计算机图形学作业
#include<iostream>#include<graphics.h>#include<conio.h>#include<windows.h>#include<vector>using namespace std;int xl, xr, yb, yt;//优化后的Bresenham算法,能够处理斜率不存在,斜率为负数,斜率绝对值大于一等情况,并且可以根据需要自动调整两点顺序,具有良好的通用性//使用只需要输入两点的横纵坐标原创 2022-04-15 17:35:54 · 2629 阅读 · 6 评论