自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 Qt+OpenGL+vs2019实现控制旋转效果和贴图效果

经过几天的摸爬滚打,终于实现了我想要的效果,将Qt和OpenGL结合使用。关于Qt和vs2019如何绑定使用,可见此文。一、创建新项目1.在vs2019里面创建新的Qt Widgets Application,Base class选择QMainWindow,我这里项目命名是MeshEdit。2.再项目中添加一个新的QtClass(右键项目->添加->Add Qt Class ->Qt Widgets Class),我的命名是opengl_widget整个项目的结构如下:二、提

2022-04-15 23:21:54 1297

原创 OKex官方API二次开发

代码地址:https://github.com/XiaoKeKeLa/OKex-API官方给的API还是很有用的,建议多看看:https://www.okex.com/docs-v5/zh/#rest-api-authentication-generating-an-apikey1.安装所需库pip install requestspip install websockets==6.0安装过程中提示某种库不存在,可自行根据提示添加2.配置个人信息如果还未有API,可点击前往官网进行申请ap

2021-08-26 15:47:27 1265 1

原创 Google Colab使用方法

写在前面:最近在看PointNet++,想跑一下代码看看效果,奈何实验室电脑配置低,得到研二才能配置高性能电脑,网上租服务器价格太高,穷学生消耗不起,最终选择用Google 提供的Colab。由于谷歌云端硬盘也只提供15g,如果数据集较大,只能扩容,价格对学生来说也要割点肉,还好目前我使用的数据集只有几个G。1.使用前提首先得会科学上网,毕竟Google在外网。再注册Google账号,这个很简单。2.使用方法进入云端硬盘,点击新建第一次使用先点击”关联更多应用“,搜索cola,找到Googl

2021-04-26 17:04:19 896

原创 Qt5.15和vs2019安装教程

写在前面:研一课程太多,每周都有考试!加上助教等乱七八糟的活,当然还有怠惰。最近一直没有学到什么实质性内容,OpenGL一直在学,但没有做笔记,因为LearnOpenGL太强大了,我再做笔记没有记录意义,可能以后会记录我在实际使用过程遇到的问题和心得感受。主要学习方法看知乎中的一篇文章,原文地址。一、下载Qt从 Qt 5.15 开始,开源版本,无论是不是 LTS,都只能在线安装。我采用的是Qt的在线安装。下载地址:http://download.qt.io/official_releases/on

2020-12-15 11:07:52 6078 3

原创 wxWidgets学习笔记02

Writing Your First Application1.Introduction//base.h#ifndef __BASE_H // Make sure to only declare these classes once #define __BASE_H class MainApp: public wxApp // MainApp is the class for our application { // MainApp just acts as a container for

2020-12-01 10:44:28 189

原创 《Ray Tracing in a Weekend》学习笔记08

想看原书可以看本系列的第一篇《Ray Tracing in a Weekend》学习笔记0111.Positionable Camera像电介质一样,相机很难调试。 首先,让我们调整视野(fov)。 这是你通过门户看到的角度。 由于我们的图像不是方形的,因此水平和垂直方向的视场都不同。 我总是使用垂直视野。 我通常还会以度数指定它,并在构造函数中更改为弧度,这是个人喜好问题。11.1Camera Viewing Geometry首先,我使光线从原点发出并前进到z = -1平面。 只要使h与该距离成比

2020-12-01 10:42:14 129

原创 《Ray Tracing in a Weekend》学习笔记07

想看原书可以看本系列的第一篇《Ray Tracing in a Weekend》学习笔记0110. Dielectrics透明材料(例如水,玻璃和钻石)是电介质。 当光线射到它们上时,它分裂为反射射线和折射(透射)射线。 我们将通过在反射或折射之间随机选择,并且每次交互仅生成一条散射射线来解决这一问题。10.1 Refraction最难调试的部分是折射射线。 如果有折射光线,我通常通常首先将所有光线折射。10.2 Snell’s LawSnell折射定律描述了折射:η⋅sin⁡θ=η′⋅sin

2020-11-15 20:40:58 243

原创 《Ray Tracing in a Weekend》学习笔记06

想看原书可以看本系列的第一篇《Ray Tracing in a Weekend》学习笔记019. Metal9.1 An Abstract Class for Materials对于本项目,材料需要做两件事情一是产生散射射线(或者说它吸收了入射射线)二是如果是散射,说出应将射线衰减多少。//[material.h] The material class#ifndef MATERIAL_H#define MATERIAL_H#include "rtweekend.h"struct hit_

2020-11-15 20:36:50 120

原创 wxWidgets学习笔记01

一、Hello World//HelloWorldApp.h#ifndef INCLUDED_HELLOWORLDAPP_H#define INCLUDED_HELLOWORLDAPP_H// The HelloWorldApp class. This class shows a window// containing a statusbar with the text "Hello World"class HelloWorldApp : public wxApp{public: vir

2020-11-12 22:27:46 206

原创 vs2019搭建wxWidgets环境的配置方法

1.下载官网:https://www.wxwidgets.org/downloads/下载zip文件即可,也可以下载右边的官方文档。解压路径不要有空格和中文!!!我的解压路径是(D:\wxWidgets-3.1.4)2.添加环境变量在系统变量里面添加:变量名:WXWIN 值:D:\wxWidgets-3.1.4(就是你的解压路径,文件夹的绝对路径)3.编译源码找到这个路径:D:\wxWidgets-3.1.4\build\msw下的 wx_vc16.sln,用vs2019打开。官方文档中

2020-11-12 22:26:06 1778

原创 获取windows锁屏壁纸

1.找到windows锁屏壁纸的缓存位置win+r,在运行框中输入%localappdata%\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets进入锁屏壁纸的缓存位置2.新建批处理文件在缓存位置新建文本文档,输入以下代码ren *.* *.jpg保存后,将该文件的.txt后缀修改为.bat,批处理文件创建成功!3.一键修改.jpg将缓存位置的所有文件(包括.bat文

2020-11-10 12:24:46 278

原创 《Ray Tracing in a Weekend》学习笔记05

8.3 Using Gamma Correction for Accurate Color Intensity这张照片很暗,这个球体在现实生活中应该是浅灰色。我们的球体在每次反弹仅吸收一半的能量,因此是50%反射器。看上去暗的原因是几乎所有的图像查看器都是假定图像经过“伽马校正”的,这意味着0到1的值存储为字节之前会有一些变换。我们可以使用“伽马2”,也就是将颜色提升为1/gamma的幂,或者通常就是平方根。//[color.h] write_color(), with gamma correctio

2020-11-09 20:43:32 139

原创 《Ray Tracing in a Weekend》学习笔记04

7. Antialiasing这章要解决边缘锯齿的问题。7.2 Some Random Number Utilities首先需要的是一个返回真实随机数的随机数生成器。制作一个返回规范随机数的函数,该函数通常会返回0<=r<1范围内的随机实数。//rtweekend.h random_double() functions#include <cstdlib>...inline double random_double() { // Returns a rand

2020-11-06 14:39:31 95

原创 《Ray Tracing in a Weekend》学习笔记03

title: 《Ray Tracing in a Weekend》学习笔记03date: 2020-10-24 14:53:00tags: 计算机图形学categories: Ray Tracingdescription: 《Ray Tracing in a Weekend》学习笔记03cover: /pictures/1.jpgmathjax: true{% meting “30814948” “netease” “song” “theme:#3F51B5” “mutex:true” “p.

2020-10-27 16:17:03 151

原创 《Ray Tracing in a Weekend》学习笔记02

5. Adding a Sphere让我们向光线追踪器添加一个对象。 人们通常在光线跟踪器中使用球体,因为计算射线是否撞击球体非常简单。5.1 Ray-Sphere Intersection当逐行扫描屏幕的所有像素点,从摄像机位置发出对应的视线,视线与球体会发生三种碰撞,一是视线不与球体相交,那屏幕上看到的还是背景颜色,二是视线与球体相切,三是视线与球体相交。我们只需推算出直线与球是否相交的公式。简单的公式推导,得出的公式:t2b⋅b+2tb⋅(A−C)+(A−C)⋅(A−C)−r2=0t^

2020-10-24 20:24:27 141

原创 《Ray Tracing in a Weekend》学习笔记01

《Ray Tracing in a Weekend》学习笔记01一、前期准备工作1.下载一个ppmview,用来看效果图。2.需要你会C/C++二、学习小结黑体标题是按原文的标题来的,简单的章节会自动跳动。2.Output an Image介绍了一下PPM作者给的main.c代码,运行结果就是输出一张简单的图片,运行结果见原书。#include <iostream>int main() { // Image const int image_width

2020-10-16 11:33:26 357 2

原创 链表排序

链表排序https://www.nowcoder.com/practice/d75c232a0405427098a8d1627930bea6?tpId=46&&tqId=29033&rp=1&ru=/ta/classic-code&qru=/ta/classic-code/question-ranking题目描述在O(n log n)的时间内使用常数级空间复杂度对链表进行排序。示例1输入{30,20,40}输出{20,30,40}/** * s

2020-10-15 22:17:47 60

原创 堆排序

堆排序堆是一种数据结构,一种叫做完全二叉树的数据结构。堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。大顶堆:a[i] >=a[2i+1] && ar[i] >= a[2i+2]小顶堆:a[i] <= a[2i+1] && a[i] <= a[2i+2]堆排序的基本思想:堆排序的基本思想是:将待排序序列构造成一个大顶堆,此时,整个序列的最大值就

2020-10-11 23:10:32 63

原创 OpenGL学习笔记01--GLFW、GlAD、GLUT安装

OpenGL学习笔记–GLFW、GLAD、GLUT安装1.GLFWhttps://www.glfw.org/download.html进入该网站直接下载32-bit Windows binariesps:注意旁边的提示,vs10及以上的下载64位,其他下载32位,下载好后,直接解压。2.GLADhttps://glad.dav1d.de/如图所示,其中gl选择最新版的即可。选择好后,Options中勾选 Generate a loader,再点击下方GENERATE。下载后解压,此时你

2020-10-11 20:27:31 965

原创 随机快排

快排在选取主元的时候,每次都选取最右边的元素。当序列为有序时,会发现划分出来的两个子序列一个里面没有元素,而另一个则只比原来少一个元素。为了避免这种情况,引入一个随机化量来破坏这种有序状态。在随机化的快排里面,选取a[left…right]中的随机一个元素作为主元,然后再进行划分,就可以得到一个平衡的划分。#include<bits/stdc++.h>#define random(x) rand()%(x)using namespace std; void swap(int *a,i

2020-10-10 15:05:48 158

原创 荷兰国旗问题

荷兰国旗问题给定一个整数数组,给定一个值K,这个值在原数组中一定存在,要求把数组中小于K的元素放到数组的左边,大于K的元素放到数组的右边,等于K的元素放到数组的中间,最终返回一个整数数组,其中只有两个值,分别是等于K的数组部分的左右两个下标值。例如,给定数组:[2, 3, 1, 9, 7, 6, 1, 4, 5],给定一个值4,那么经过处理原数组可能得一种情况是:[2, 3, 1, 1, 4, 9, 7, 6, 5], 需要注意的是,小于4的部分不需要有序,大于4的部分也不需要有序,返回等于4部分的左右

2020-10-09 22:31:36 109

原创 逆序对

链接:https://www.nowcoder.com/questionTerminal/f50f89c3b4624cd6aa3312747cd45879来源:牛客网给定一个长度为n的排列A,逆序的定义:(i,j)为逆序对,当i<j && A[i]>A[j]求排列A的逆序对数量。输入描述:第一行一个整数n,表示排列的长度.第二行n个元素,表示A排列.输出描述:输出逆序对的数量示例1输入53 2 4 1 5输出4解析:原理是归并排序,在每次me

2020-10-08 22:51:46 294

原创 计算数组的小和

链接:https://www.nowcoder.com/questionTerminal/edfe05a1d45c4ea89101d936cac32469来源:牛客网数组小和的定义如下:例如,数组s = [1, 3, 5, 2, 4, 6],在s[0]的左边小于或等于s[0]的数的和为0;在s[1]的左边小于或等于s[1]的数的和为1;在s[2]的左边小于或等于s[2]的数的和为1+3=4;在s[3]的左边小于或等于s[3]的数的和为1;在s[4]的左边小于或等于s[4]的数的和为1+3+2=6;在

2020-10-08 10:07:33 388

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除