- 博客(17)
- 资源 (1)
- 收藏
- 关注
原创 premake5实例教程
premakeExample1 简介本文讲解如何基于premake5创建一个典型的C++解决方案,该解决方案包含三个项目:一个依赖GLFW动态库的动态库项目ExampleDll一个依赖ExampleDll动态库的窗口程序APP一个基于Catch的单元测试程序UnitTest所有代码已上传Github,链接。2 你需要准备premake5.exe程序一个文本编辑器一个支持C...
2020-02-23 11:17:27 5516
原创 Github与Git使用
1、注册Github注册完成之后会需要验证邮箱才能正常使用GitHub。注册完成后,创建一个属于自己的库,包括库的名字,以及对库的介绍。2、安装Git首先进入Git官网www.git-scm.com下载适合自己电脑的版本,执行默认安装选项。3、配置密钥在本地创建ssh key并填写到Github网站,实现本地git与Github的认证连接。1)执行命令:ss...
2019-08-30 11:12:34 248
原创 BIMServer系列——1.BIMServer安装
1、下载安装JRE本机位win10 64位,应选择64位JRE下载。最新版本文件如下:jre-8u221-windows-x64.exe。2、下载安装BIMServer及插件BIMServer安装包、插件及测试数据已有Github用户提供下载,链接如下:https://codeload.github.com/ibrucekong/bimserver-env/zip/master。...
2019-08-29 20:11:15 1883
原创 利用OpenThreads实现三个线程顺序打印ABC
#include <iostream>#include <OpenThreads/Thread>#include <OpenThreads/ScopedLock>OpenThreads::Mutex g_mutex;int g_flag(1);class PrintAThread : public OpenThreads::Thread{pu...
2019-04-10 09:02:38 357
翻译 500行C++代码实现软件渲染器 - 3.隐藏面消隐(Z缓冲区)
引入您好,我来介绍一下我的朋友z缓冲区,一个黑色的伙计。 他将帮助我们避免上一课中隐藏面移除的视觉效果。顺便说一句,我想提一下,我在课程中大量使用的这个模型是由Vidar Rapp创建的。 他授予了我使用许可,以便我可以教授关于渲染的基础知识。虽然我对它进行了破坏,但我保证我会把眼睛还给那个人。好吧,回到主题,理论上我们可以绘制所有三角形而不丢弃任何一个。 如果我们正确地从后到前开...
2019-01-18 16:41:45 1272
翻译 500行C++代码实现软件渲染器 - 2.三角形光栅化与背面剔除
填充三角形大家好,这是我。更精确来讲,这是用接下来一两个小时内我们将创建的程序渲染出来的我的脸的模型。上一次,我们绘制了三维模型的线框。这一次,我们将填充多边形,或者三角形。事实上,OpenGL几乎会对所有的多边形进行三角化,所以这里我们不需要去考虑更复杂的情况。需要提醒的是,本系列教程设计的目的是帮助你自己独立编程。当我说你可以在两个小时内绘制一个类似上面的图像,我并不是说阅读代...
2019-01-17 11:07:52 1489
翻译 500行C++代码实现软件渲染器 - 1.Bresenham直线绘制算法
第一版这一课的目标是绘制线框。为了实现这个目标,我们需要先学会绘制线段。我们可以直接阅读Bresenham直线算法的内容,但是我们还是自己写代码实现。要实现点(x0,y0)和(x1,y1)之间线段的绘制,代码应该怎么写呢?显然,代码可能是这样:void line(int x0, int y0, int x1, int y1, TGAImage &image, TGAColor c...
2019-01-10 18:53:05 1111
翻译 500行C++代码实现软件渲染器 - 0.引言
直接阅读源代码并不容易理解,建议阅读维基之后再来实现你自己的渲染器。只有当你弄懂了所有的技术细节之后,你才会知道渲染器如何工作。我很乐意通过邮件得到读者的反馈。如果你有任何问题,欢迎与我联系(dmitry.sokolov@univ-lorraine.fr)。如果你是一名教师,希望在课堂上使用本材料,我对此非常欢迎,不必授权,只需要通过邮件告知我即可,因为这能够帮助我改进本课程。本系列文章中,我...
2019-01-10 18:52:45 1980
原创 三种开源库实现GIS坐标转换
1 Proj.4通过坐标系proj4字符串创建projPJ类型坐标系,调用pj_transform函数实现。其中坐标系proj4字符串可在PROJ4-data文件夹中的epsg文件中搜索得到。double x = dblSrcX;double y = dblSrcY;double z = dblSrcZ;projPJ fRef, tRef;tRef = pj_init_pl...
2018-12-04 18:35:33 3323
原创 组合使用Memento模式与Command模式实现多级Redo和Undo
总体思路利用Memento模式,为每一个执行命令之前的对象的状态创建备份。 利用Command模式,将命令的调用和操作的实现解耦。 通过维护一个命令和备份相对应的数组,将命令和当前对象的备份同步保存起来。 设置一个当前数组的游标,标识当前回退或重做的进度。代码实现#include <vector>#include <iostream>class Do...
2018-09-19 12:06:37 626
原创 设计模式七大原则总结
1.单一职责原则(Single Responsibility Principle)目的:降低代码复杂度、系统解耦合、提高可读性含义:对于一个类,只有一个引起该类变化的原因;该类的职责是唯一的,且这个职责是唯一引起其他类变化的原因。解决:将不同的职责封装到不同的类或者模块中。 当有新的需求将现有的职责分为颗粒度更小的职责的时候,应该及时对现有代码进行重构。当系统逻辑足够简单,方法足够少,...
2018-09-14 08:49:09 4112
原创 OSG for Android实现VPB地形,倾斜影像与三维模型加载
案例1.加载VPB地形数据案例2.加载倾斜影像数据案例3.加载三维模型数据
2018-03-05 10:19:02 1065 1
原创 Regsvr32 在64位机器上的用法
regsvr32是windows上注册 OLE 控件(DLL 或 ActiveX )的常用命令。注册 OLE 控件可更新 Windows 注册表中文件的位置和功能,从而使程序正常运行。32位系统注册32位控件,64位系统注册64位控件,一般都没有问题。一般容易出问题的是在64位操作系统上注册32位控件。注意:64 位版本的 Windows 操作系统上有两个版本的 Regsv32.exe 文件。64...
2017-03-23 09:47:23 68048 9
原创 VS2010编译32/64位GDAL 2.1.3
1、 下载源码下载GDAL源码gdal213.zip,解压。建议解压两次,分别重命名文件夹为gdal-2.1.3-32和gdal-2.1.3-64,以便不同的文件夹编译不同的版本,防止混乱。 2、 编译xercesØ 下载xerces-c-3.1.4源码,解压c盘根目录。Ø 打开C:\xerces-c-3.1.4\projects\Win32\VC10\xerces-all\xerces-al...
2017-03-15 10:14:12 689
原创 IE 11 捕获OCX事件
为了支持现行标准,IE 11已经删去了对attachEvent方法的支持,转而使用addEventListener替代。参考官方链接:https://msdn.microsoft.com/library/bg182625(v=vs.85).aspx。因此,要实现插件事件绑定在多个IE浏览器版本之间兼容,可使用两种方法。方法一: function addEvent(obj, name,...
2016-11-12 15:24:39 3976 1
原创 ArcGIS ModelBuilder批量导出SHP文件中的要素
问题描述:如下图“宜昌_螺山左岸位置_SpatialJoin1_Disso1”图层数据为polyline类型,包含了218条线,想要将这218条线导出为单独的Shapefile文件。解决方案:1. 打开modelbuilder,拖入原始数据“宜昌_螺山左岸位置_SpatialJoin1_Disso1”。2. 插入迭代器,单击Insert—Iter
2016-08-27 17:04:08 18065 5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人