openGL
Frank(Zhiyang-Dou)
A Ph.D. candidate at HKU. Mainly focus on CG.
展开
-
openGL-中点Bresenham绘制直线算法
环境macos xcode编译器代码#include <GLUT/GLUT.h>#include <iostream>#include<iostream>#include<cstdlib>#include<ctime>using namespace std;float wid = 400; ...原创 2018-03-14 19:25:26 · 3301 阅读 · 0 评论 -
Clion配置openGL
综述之前一直用xcode写openGL。最近要用到CGAL去做一些计算几何的任务,但是发现xcode配起来是真的麻烦。想到了clion+cmake环境。这个用cmakelist处理应该会很方便环境依然macos clion代码cmakelist.txt 注意我们的项目名是: OpenGL请你在必要的位置替换为你的项目名。cmake_minimum_requ...原创 2018-05-05 14:44:13 · 4493 阅读 · 0 评论 -
Clion-cmake配置CGAL(含openGL)
综述最近在搞计算几何的相关项目。由于xcode对eigen的配置支持较差(不方便) 而在泊松表面重建中需要用到它。 所以索性cmake配置走起。环境macos clion编译器说明首先确保您下载了cgal sudo brew install cgal代码cmakelist.txtcmake_minimum_required(VERSIO...原创 2018-05-05 15:57:48 · 2648 阅读 · 0 评论 -
CGAL-绘制Power Diagram并显示
综述这些代码用的挺频繁的,梳理一下便于日后查看。环境macos clion编译器基础确保您基本掌握cgal与openGL代码#include &lt;CGAL/Exact_predicates_inexact_constructions_kernel.h&gt;#include &lt;CGAL/Regular_triangulation_2.h&g...原创 2018-08-10 23:08:57 · 2153 阅读 · 1 评论 -
openGL-添加/标记/绘制文字(Text)
综述有时候我们在做图的时候可能需要将文字标记在相关的位置,openGL有很多相关的方法,这里为大家介绍一种:代码void* bitmap_fonts[7] = { GLUT_BITMAP_9_BY_15, GLUT_BITMAP_8_BY_13, GLUT_BITMAP_TIMES_ROMAN_10, GLUT_B...原创 2018-08-11 09:53:59 · 10465 阅读 · 3 评论 -
openGL-输入点并显示
综述没有任何技术含量,只是做一个备份。方便自己查阅。代码#include <GLUT/GLUT.h>#include <iostream>#include <string>#include <vector>#include <iomanip>#include <fstream>using na...原创 2018-08-11 12:36:53 · 1453 阅读 · 0 评论 -
Mac-Mac下openGL无法绘制:Mojave版本下
综述升级了mojave, 真是惊心动魄。遇到了一下几个槽点:1.Virtual Box版本开始不兼容。(需要安装新版本。这并不复杂)2.使用clion等构建项目默认会给你选择c++14。3.最要命的,对openGL的不支持开始强烈显现。今天主要说说这个。问题在mac上编译结束后,openGL绘制不出来了(黑屏)!国外网友们已经遇到了这个问题。纷纷在stackflow开始吐槽。不少人...原创 2018-10-20 14:59:08 · 4659 阅读 · 1 评论 -
openGL-二维点输入采样
综述鼠标点击界面生成我们的采样点。这是我之前实现裁剪算法时候改的,无视注释即可。代码// SDU 16计算机基地 窦志扬// 联络:sdudzy@163.com// main.cpp// 采样////#include <GLUT/GLUT.h>#include <iostream>using namespace std;struct Po...原创 2018-12-10 21:35:32 · 535 阅读 · 0 评论 -
openGL-读取off、stl、obj文件并旋转平移缩放操作
综述最近图形学实验要求做一个off、obj文件并旋转平移缩放操作的练习,我顺手把stl(二进制)也做了一下。 支持操作:旋转、平移、缩放、改变散射光、改变光源位置。而且可以在显示点、线、面三者切换 注意我没有使用半边结构,暴力存储的。文件读取说明不多说废话,代码写的很清楚。注意off和obj文件的格式很相似。然而stl二进制读取需要注意我是四个字节读三次来搞的。操作说明...原创 2018-05-05 10:59:08 · 11708 阅读 · 59 评论 -
openGL-Bresenham中点画圆、椭圆算法
环境mac os x xcode代码#include <GLUT/GLUT.h>#include <iostream>#include <cmath>#include <algorithm>using namespace std;float wid = 400; //设置窗口的大小,约定窗口必须为正方形...原创 2018-03-14 19:29:05 · 3824 阅读 · 1 评论 -
openGL-梁友栋-Barsky算法
代码//// main.cpp// hw_1_cut_line//// Created by 窦志扬 on 2018/3/11.// Copyright © 2018年 窦志扬. All rights reserved.//#include <GLUT/GLUT.h>#include <iostream>using namespace std;int x1,y1,x2,y2原创 2018-03-14 19:33:39 · 4079 阅读 · 1 评论 -
openGL-基于编码的剪裁算法Cohen-Sutherland
代码//// main.cpp// hw_1_codecut////#include <GLUT/GLUT.h>#include <iostream>using namespace std;struct Point{ //定义点的结构体,主要用于编码 float x,y; int code;};Point a,b;//定义两个点,我们最多只需两个点;i原创 2018-03-14 19:37:17 · 1308 阅读 · 0 评论 -
openGL-扫描线填充算法
说明把最近一系列的图形学经典算法实现了一下。课业繁忙,关于该系列的推导随后再写。但是在注释里已经有较为充分的分析。分情况讨论注意对于横线需要特别讨论,但是对于垂直线却不必特别讨论。想一想为什么?代码#include <iostream>#include <GLUT/GLUT.h>#include <map>#include <vector>#include <list>#include <原创 2018-03-16 14:35:15 · 7169 阅读 · 1 评论 -
openGL-泛滥填充算法
说明其实就是BFS或者DFS都可以代码#include <GLUT/GLUT.h>#include <iostream>#include<iostream>#include<cstdlib>#include <queue>using namespace std;float wid = 400; //设置窗口的大小,约定窗口必须为正方形float height = wid原创 2018-03-16 18:21:32 · 1767 阅读 · 0 评论 -
openGL-多边形裁剪算法
综述:这里只是简单记录了部分实现思想。该部分代码不具备实际使用功能。 考虑使用4把刀分别裁剪一个图形。核心思想是,有一个点在扫描整个图形的边界。在扫描过程中,如果从刀的内侧(需要自己定义)到刀的外侧那么就记录当前点p0,当再次从外侧进入内测时,将当前点和记录的p0连起来。对于“覆盖遮挡”的边界可以利用 (a^b)^b = a来实现“抹去还原”。#include <GLUT/GLUT.h>#in原创 2018-03-24 14:58:04 · 5118 阅读 · 0 评论 -
openGL-设计交互平面图形(旋转、平移、缩放)
综述最近在学习图形学的一些知识。现在做一个可交互的平面图形。 要求是: 1.三个不同的平面图形 2.可以通过鼠标“各自”进行指定的操作。 3.第二条中操作包括:旋转、平移、缩放 该文章:首先介绍一个图形时候的情况。多个图形不断更新。环境我是用xcode写的。但是不用担心,你需要修改的或许只是include头文件的两个字母。基础知识:你会在这个过程中遇到一些新的...原创 2018-04-07 14:24:41 · 13504 阅读 · 1 评论 -
openGL-自定义像素坐标系
综述openGL中默认为归一化后的坐标系。这种坐标系再不同的显示条件下都是按比例缩放呈现的。具有一定的好处。 但是有时候为了便于操作和展示我们需要按照像素坐标系进行绘制。下面给出配置例子。 看看例子自己验证一下就都明白了。例子#include <iostream>#include <GLUT/GLUT.h>using namespace std;flo...原创 2018-04-07 13:35:27 · 1085 阅读 · 0 评论 -
读取obj顶点颜色 vertex color渲染并保存图片
综述该程序是在我之前的项目中修改的。因为3dmax不支持顶点色彩的obj文件渲染,而meshlabserver不支持导出图片的批处理脚本。所以只好手写openGL渲染。这个项目的更加基本的版本是我之前的写的一个程序:openGL-读取off、stl、obj文件并旋转平移缩放操作-Zhiyang读取顶点色彩信息主要看readerOBJ即可。保存图片的关键函数是:void PPMWr...原创 2019-07-27 13:45:47 · 6624 阅读 · 10 评论