OpenGL-直线的扫描转换
这篇文章来介绍直线扫描转换算法 DDA数值微分线段算法算法简介数值微分法即DDA法(Digital Differential Analyzer),是一种基于微分方程来生成直线的方法。在计算机图形学中,并没有线段的概念,而是一个个像素点组成了线段。 DDA法生成线段的步骤一般如下: 有了起始点($x_1,y_1$)和终点($x_n,y_n$); $$\Delta x =|x_n-x_1|, \Delta y=|y_n-y_1|$$ 比较$\Delta x$和$\Delta y$的大小; steps=$\Delta x$和$\Delta y$中较大者; $$step_x=\frac{\Delta x}{steps},step_y=\frac{\Delta y}{steps}$$ 算法实现DDA算法实现如下: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061...
OpenGL-基础程序
代码展示我们先从基本的OpenGL程序开始吧,这是一个简单的OpenGL程序: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354#include<GL/glut.h>using namespace std;// 回调函数void myDisplay(){ // 清除缓冲区 glClearColor(0.0, 0.0, 0.0, 0.0); glClear(GL_COLOR_BUFFER_BIT); // 正交模式 glMatrixMode(GL_PROJECTION); gluOrtho2D(0.0, 500.0, 0.0, 500.0); glColor4f(0.0, 1.0, 0.0, 0.0); glRectf(50.0, 50.0, 400.0, 400.0); // 划线 glColor3f(1.0, 1.0, 0.0); glBegin(GL_LINES); glVertex2f(50.0, 50....
配置OpenGL环境
最近要学计算机图形学,所以会用到OpenGL,配置环境有点繁琐,记录了下来。 安装Visual Studio现在我们先来安装Visual Studio:visual studio,下载后安装即可|在安装时选择“使用C++的桌面开发”,这样安装时就会安装C++的编译器了。 安装 Cmake这个可选,因为我们可以使用Visual Studio的编译器MSVC来编译项目。Cmake是一个开源的跨平台软件构建工具,它可以生成不同系统的构建文件,比如Makefile,Ninja,VS项目文件等等。我们可以下载Cmake:cmake,下载后安装即可。 安装GLFWOpenGL有许多工具,比如GLFW,GLEW等等,这里我们安装GLFW。 工具 类别 主要职责 特点 GLUT 窗口管理 + 工具库 创建窗口、处理鼠标键盘、提供内置渲染循环。 古老、简单。使用“固定管线”(老旧技术),适合教学。 GLFW 窗口管理库 创建窗口、处理输入、管理多个上下文。 现代、轻量。只管窗口和输入,不负责渲染逻辑,是目前的主流。 GLAD 配置/加载库 加载 OpenGL 函数指针...
opencv应用-算术运算
opencv对图像的算数运算,感觉都大同小异,分为以下几种:加减乘除和位运算。 函数 功能 应用场景 cv2.bitwise_and() 按位与操作 掩码操作、图像分割 cv2.bitwise_or() 按位或操作 图像叠加 cv2.bitwise_not() 按位取反操作 图像反色 cv2.bitwise_xor() 按位异或操作 图像差异检测 因为感觉都差不多,所以只把加法运算代码搬过来 1234567891011121314151617181920212223242526272829303132333435363738394041// 加法#include <opencv2/opencv.hpp>#include <iostream>using namespace std;using namespace cv;int main(){ string path1 = "../img/2.jpg"; string path2 = "../img/3.jpg"; ...
opencv应用-基础操作
这里用C++进行编程,发现菜鸟教程只有python的版本,那就记录一下。 图片读取与展示1234567891011121314// 读取图像#include<opencv2/opencv.hpp>#include<iostream>using namespace std;using namespace cv;int main(){ Mat src = imread("../img/1.png"); imshow("input",src); waitKey(0); destroyAllWindows(); return 0;} 图像基本操作读取像素需要用到三维向量数组Vect3b,这里需要注意的是,Opencv是BGR而不是我们常用的RGB。 123456789101112131415161718192021222324// 读取像素#include<opencv2/opencv.hpp>#include<iostream>using name...
配置opencv
引言不知道为什么我们专业看起来与计算机八竿子打不着,竟然要学opencv,那就来记录一下吧! Ubuntu 篇Ubuntu因为有完善的包管理体系,所以配环境相对简单。 先安装vscode,当然也可以不安装,只是个编辑器; 🪧引用站外地址,不保证站点的可用性和安全性 vscode Microsoft 到这里下载deb格式的软件包,然后dpkg安装即可。可以安装这些扩展: 接下来安装编译器 12345678910# 先更新软件包apt updateapt upgrade -y# 安装C/C++编译器apt install gcc g++# 安装opencvapt install -y mesa-utilsapt install -y libopencv-devapt install -y opencvapt install -y python3-opencv #Python opencv 然后就可以了。 Windows ...
自建bitwarden服务
Bitwarden 是一款开源、端到端加密的密码管理器,支持 Windows、macOS、Linux、Android、iOS 以及几乎所有主流浏览器。它可以帮你: 安全存储密码、银行卡、笔记、密钥等敏感信息 全设备自动同步 一键自动填充账号密码 生成高强度随机密码 检测弱密码、重复密码、泄露密码 之前一直使用浏览器自带的密码管理器,跨平台不太好用,所以自建一个Bitwarden服务器。但是我们一般用Vaultwarden,占用更小,有一些Bitwarden的商业功能。 123456789101112services: vaultwarden: image: vaultwarden/server:latest container_name: vaultwarden restart: unless-stopped environment: DOMAIN: "https://vw.domain.tld" #更改成自己的域名 volumes: - ./vw-data/:/data/ ports: ...
自建renovate-bot
最近自建了gitea,所以把renovatebot也自建一下,毕竟renovatebot可以自动更新依赖,但是它不对自建git提供服务。这是docker compose文件: 123456789101112services: renovate: image: renovate/renovate:latest environment: RENOVATE_PLATFORM: 'gitea' RENOVATE_ENDPOINT: '你的git api地址' RENOVATE_TOKEN: 'token' RENOVATE_AUTODISCOVER: 'true' RENOVATE_GIT_AUTHOR: Renovate Bot <bot@biss.click> RENOVATE_USERNAME: renovate-bot volumes: - ./renovate-data:/tmp/renovate ...
将博客仓库转移到gitea
在上一篇文章中已经完成了gitea的安装那么博客源码迁移倒是没问题,直接git remote add origin就行,但是action文件就有些变更。这是我修改的action文件: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556name: 自动部署on: push: branches: - master release: types: - published workflow_dispatch:env: TZ: Asia/Shanghaijobs: deploy: runs-on: ubuntu-latest steps: - name: 检查分支 uses: actions/checkout@v4 with: ref: master - name: 缓存项目 npm 包 id: cache-node-modul...
安装gitea
今天想把网站的源码转移到自建git仓,所以先来安装gitea吧(gitlab过于庞大,服务器配置不够)PS:我的服务器为2C2G 安装gitea这里用二进制文件安装 获取二进制文件:123wget -O gitea https://dl.gitea.com/gitea/1.25.4/gitea-1.25.4-linux-amd64chmod +x giteacp gitea /usr/local/bin/gitea 创建用户这一步不是必须的,但是推荐这样,用root用户很容易出问题。 1234567891011121314151617181920# On Ubuntu/Debian:adduser \ --system \ --shell /bin/bash \ --gecos 'Git Version Control' \ --group \ --disabled-password \ --home /home/git \ git# On Fedora/RHEL/CentOS:groupadd --system gitaddus...








