Skip to content
  • 首页
  • 留言
  • 关于

Share the joys of programming and technology

OpenGL绘制桥梁模型

OpenGL绘制桥梁模型

2021年6月30日 liyanliang Comments 1 comment

本文主要讲述如何使用现代OpenGL绘制一个完整的桥梁模型,包括箱梁、盖梁和桥墩,关于OpenGL方面,主要添加的shader,使用phong光照模型实现。 一、绘制箱梁 1.1 箱梁的的截面和坐标系 截面: 坐标系: 1.2 箱梁的顶点及其法向量 1.3箱梁的VAO、VBO 1.4绘制箱梁 二、绘制盖梁 2.1盖梁的顶点及其法向量 2.2盖梁的VAO、VBO 2.3绘制盖梁 三、绘制桥墩 3.1计算圆周上的点和法向量 3.2计算圆柱side和上圆形和下圆形 3.3桥墩的VAO、VBO 3.4绘制桥墩 四、着色器 4.1顶点着色器 4.2片段着色器 五、项目源代码 链接:https://pan.baidu.com/s/1EA2wd_Rooj-748uKAUugAw 提取码:3d51

Modern OpenGL绘制圆柱体

Modern OpenGL绘制圆柱体

2021年6月29日 liyanliang Comments 2 comments

本文主要介绍如何使用 C++ 生成圆柱几何体以及如何在 OpenGL 中绘制它。 1.绘制方法 由于我们无法绘制一个完美的圆形底面和圆柱体的弯曲侧面,我们只能通过将底面除以扇区(切片)来采样有限数量的点。因此,它在技术上是通过将这些采样点连接在一起来构建棱柱体。随着样本数量的增加,几何形状更接近于圆柱体。 假设一个圆柱体以原点为中心,半径为r,高度为h。圆柱体上的任意点 ( x, y, z ) 可以从具有相应扇形角θ的圆方程计算出来: 扇形角的范围是从 0 到 360 度。每个步骤的扇形角可以通过以下方式计算: 2.创建存放顶点向量和法向量的结构体: ​3.计算圆周上的点 4.获取圆柱体侧面、顶面、底面的顶点和法向量 5.将顶点和法向量存入缓冲区 6.绘制圆柱体 7.删除缓冲区 8.效果 9.完整的项目源代码 https://pan.baidu.com/s/1cEUuAmY3JNUbt7sTNvTuyA 提取码:lf5q

WordPress分页插件 – WP-PageNavi的使用(替换现有脚本)

WordPress分页插件 – WP-PageNavi的使用(替换现有脚本)

2021年6月2日 liyanliang Comments 1 comment

插件的安装: 后台自动安装WP-PageNavi插件:插件——安装插件——搜索“WP-PageNavi”,选择第一条,直接在线自动安装即可 将原有的分页导航代码替换为: 1.在首页模板中使用 2.在文章归档中使用 3.在搜索结果中使用 4.在模板函数中使用 一般在作者模板或者模板函数中 注:为了防止WP-PageNavi插件没有启用而报错,我们使用如下代码:

土木想往土木软件开发方向发展,应该如何准备

土木想往土木软件开发方向发展,应该如何准备

2021年5月22日 liyanliang Comments 1 comment

最近很多学生、做结构设计的想要转开发,请教我应该如何准备。作为一个土木专业背景的开发人员,一路走来走了很多坑,所以,我想把我的学习经验写在这里,希望对大家有用。 一、入门篇 如果你没有基础,可以先按照以下的专业课程进行学习。 1.学习C++。 很多土木软件开发公司用的开发语言都是C++,包括广联达、迈达斯、盈建科、PKPM。C++也是主流的开发语言,各大互联网的底层开发也都会用到C++,所以,建议大家首选的开发语言是C++。 C++也是被称为最难的语言,建议大家可以先学习C语言,学习C语言对后面学习计算机的体系课程有很大帮助。推荐阅读《C Primer Plus》,可以对照这翁凯老师的公开课视频 程序设计入门 。这本书虽然厚,但是都比较简单,也很全面,刚开始学习编程会很难,很多东西都觉得比较抽象,一定要在电脑上把书上的例子敲出来,编译运行,慢慢地入门后就会学的很轻松。 当你学习了C语言之后,再学习C++就会轻松很多,推荐阅读《C++ Primer》,把配套习题集《C++ primer习题集》也做一下,推荐课程唐佐仁《c++语言课程深度解析》。(ps:关于本文的提到的课程,这里并不是打广…

Read More Read More

设计模式-抽象工厂模式

设计模式-抽象工厂模式

2021年5月7日 liyanliang Comments 0 Comment

定义 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 实现 步骤一: 创建抽象类来获取工厂。 步骤二: 工厂A。 工厂B。 步骤三: 工厂生成器。 步骤四: 使用。 CTotalReportService::CTotalReportService(CNSDocBase* pDoc) { m_pBuildMRDataCtrl = CFactoryProducer::Creat(pDoc); ASSERT(m_pBuildMRDataCtrl); }

调用另外一个项目中的函数-设计模式解耦

调用另外一个项目中的函数-设计模式解耦

2021年3月15日 liyanliang Comments 0 Comment

背景描述 现需要在项目 CDP_cmd 中调用项目 CDP_dgnCalc 类CAnalRstHelper_JTGTJ212011中的函数: 解决方法 1.查看项目属性,发现项目CDP_cmd和项目CDP_dgnCalc均引用项目CDP_db,故可在CDP_db中添加一个纯虚基类(接口)。 IAnalRstHelper_JTGTJ212011.h IAnalRstHelper_JTGTJ212011.cpp 2.使子类CAnalRstHelper_JTGTJ212011继承于虚基类IAnalRstHelper_JTGTJ212011 CAnalRstHelper_JTGTJ212011.h CAnalRstHelper_JTGTJ212011.cpp 3.在模块CDP_dgnCalc的dllmain.cpp中初始化实例和析构实例内存 dllmain.cpp 4.使用:在模块CDP_cmd的CMCtseDlg.cpp中调用函数 总结: 本方法主要利用C++的多态特性,在虚接口类中IAnalRstHelper_JTGTJ212011new一个CAnalRstHelper_JTGTJ2120…

Read More Read More

从DLL中动态加载一个函数:LoadLibrary和GetProcAddress的使用

从DLL中动态加载一个函数:LoadLibrary和GetProcAddress的使用

2021年3月15日 liyanliang Comments 0 Comment

背景描述: 在项目CDP_cmd中需要调用项目CDP_dgnCalc中的类CAnalRstHelper_JTGTJ212011的函数: 解决方法: 1.在CAnalRstHelper_JTGTJ212011.cpp中添加一个全局函数: 注意,必须要在全局函数前添加 EXTERN_C,否则函数虽然导出了,却无法调用该函数。 2.在项目CDP_cmd的类CCMCtseDlg.h中定义函数指针 这里的函数参数列表与被调用的函数列表一致即可。 3.在项目CDP_cmd的类CCMCtseDlg.cpp中调用 4.使用 DependencyWalker 反编译工具查看全局函数 GetElemValuePositiveOrNegativeMyGlobal 是否导出 在Debug文件夹下找到 CDP_dgnCalc.dll ,拖拽到DependencyWalker界面中: 文本编辑器中搜索GetElemValuePositiveOrNegativeMyGlobal, 说明函数已导出:

OpenGL绘制旋转立方体

OpenGL绘制旋转立方体

2021年2月25日 liyanliang Comments 1 comment

概要 主要介绍使用OpenGL绘制一个立方体,并给立方体的六个面赋予不同的颜色,并使立方体可以自动旋转,也可以通过键盘按键A、D、W、S进行左、右、上、下移动。 1.使用GLM函数库(OpenGL Mathematics)进行立方体举矩阵的变换运算; 2.使用PVM矩阵进行坐标系变换。PVM矩阵即 P:projection;V:view;M:model。model矩阵对应从局部坐标系到世界坐标系的变换;view矩阵对应从世界坐标系到观察坐标系的变换;projection 矩阵对应从观察坐标系到剪裁空间的变换。 3.通过注册鼠标和键盘控制函数,使立方体可以通过设备控制。 效果 主要实现代码 main.cpp 完整的项目代码 链接:https://pan.baidu.com/s/1GH_3Yqe4FJt6ivZ1DZkhSA 提取码:u8gs 参考资料 https://www.icourse163.org/learn/HUST-1003636001?tid=1457257442#/learn/content?type=detail&id=1232561377&sm=1

midas XD2020的开发

midas XD2020的开发

2021年2月16日 liyanliang Comments 0 Comment

本次midas XD600的主要功能如下: 一、新增的功能 1.构件详图 ①排桩配筋大样图 ②地下连续墙配筋大样图 ③双排桩大样图 ④加固土大样图 ⑤钢管立柱大样图 ⑥锚杆锚索大样图 ⑦土钉大样图 ⑧支撑、冠梁、腰梁、立柱自动选筋 功能展示 https://www.bilibili.com/video/BV1Ly4y1a772?spm_id_from=333.999.0.0 2.选筋助手 ①构件归并功能 ②内支撑构件钢筋图 ③选筋结果计算书 功能展示 https://www.bilibili.com/video/BV1hb4y1X73C?spm_id_from=333.999.0.0 二、优化的功能 ①【施工图】立柱桩角度设置 ②【施工图】地连墙主次槽段幅度划分 ③【接口】XD->GTSNX放坡线导出 ④【其他】地表标高修复 功能展示 https://www.bilibili.com/video/BV1Ly4y17782?spm_id_from=333.999.0.0 ps:关于 MIDAS XD软件介绍及600升级内容 可观看我同事讲解的视频: 关于midas XD软件相关问题…

Read More Read More

提取最小封闭区域

提取最小封闭区域

2021年2月16日 liyanliang Comments 0 Comment

题目描述: 第一步:通过txt文本导入任意条线段、多段线; 第二步:可以保存和打开模型数据; 第三步:运用面向对象的知识,进行C++编码,求出第一步中导入的线条交叉后的所有最小封闭区域。 如图: 一、解决方法: 1.得到线段集合S(线段的集合为line和polyline); 2.移除孤立的线段(两端的点都是孤立的); 3.拆分所有的线段(就是将所有的相交线线段拆分开,得到新的线段集合S); 4.移除一个端点孤立的线段(一个端点孤立的线段是不构成多边形的); 5、计算最小闭合区域; 6.去除不合理的区域。 本文提取最小闭合区域的算法主要查看专利文章《提取最小封闭图形的方法》。 详细的代码实现过程见代码项目。 二、完整项目代码(VS2012): 代码: 链接:https://pan.baidu.com/s/1M3qvdAdO0C57KvS5NpqDrA 提取码:7t1v 专利:提取最小封闭图形的方法-专利.pdf 链接:https://pan.baidu.com/s/1njRr-IK1a5fFYn-WFVVNfw提取码:w8cm 三、代码运行后效果:

第 3 页,共 6 页«123456»

近期文章

  • ANR崩溃日志查看方法
  • 通过数学方法来计算short类型的变量w的低八位x和高八位
  • 3dTiles数据解析
  • Games101和Games202脑图汇总
  • LearnOpenGL脑图汇总
  • IBL计算总结
  • C++实现一个简单的语言解释器
  • OpenGL-法线贴图(Normal Mapping)
  • OpenGL-卡通着色(Cartoon)
  • OpenGL几何着色器实现贝塞尔曲线
  • WinDbg检查内存泄漏
  • OpenGL雾化效果实现-每像素雾化
  • OpenGL实现billboard效果(CPU)
  • 算法:寻找异常数字
  • OpenGL 几何着色器的应用
  • Midas XD-构件详图开发
  • Midas XD-选筋助手开发
  • Civil Designer开发-检测规范自动生成控制截面
  • Civil Designer开发-公路桥梁承载能力检算评定
  • Midas W-满堂支架快速建模助手开发

全站热点

  • C++编写的情人节小程序 (2,082)
  • 提取最小封闭区域 (1,696)
  • Modern OpenGL绘制圆柱体 (1,607)
  • OpenGL开发环境搭建-GLFW与GLAD配置 超详细 (1,465)
  • 截面特性计算程序-附源码 (1,290)
  • OpenGL绘制旋转立方体 (1,110)
  • 判断一个点是否在闭合区域内 (1,032)
  • WordPress分页插件 – WP-PageNavi的使用(替换现有脚本) (948)
  • OpenGL实现billboard效果(CPU) (865)
  • Midas W-满堂支架快速建模助手开发 (837)
  • 从DLL中动态加载一个函数:LoadLibrary和GetProcAddress的使用 (748)
  • Midas XD [错误] 右侧挡土墙的最下端深度必须小于地基的最下端深度 (709)
  • 两跨连续梁影响线绘制-附源码 (686)
  • 土木想往土木软件开发方向发展,应该如何准备 (680)
  • OpenGL几何着色器实现贝塞尔曲线 (664)
  • 通过Spy++抓取窗口以查询对话框id (613)
  • 使用ODA数据库出现 “ODA_ASSUME”: 找不到标识符的错误 (547)
  • #pragma message 编译时提示信息 (527)
  • OpenGL雾化效果实现-每像素雾化 (508)
  • midas XD2020的开发 (476)

分类

  • C# (3)
  • C++ (19)
  • GIS (1)
  • MFC (3)
  • ObjectARX (2)
  • OpenGL (11)
  • Revit开发 (1)
  • 学习笔记 (2)
  • 岩土 (2)
  • 算法 (1)
  • 结构设计 (7)
  • 职场生涯 (1)
  • 计算几何 (3)

归档

  • 2024 年 12 月 (1)
  • 2024 年 10 月 (1)
  • 2024 年 9 月 (1)
  • 2023 年 3 月 (2)
  • 2022 年 10 月 (1)
  • 2022 年 3 月 (1)
  • 2022 年 2 月 (1)
  • 2022 年 1 月 (5)
  • 2021 年 11 月 (7)
  • 2021 年 6 月 (3)
  • 2021 年 5 月 (2)
  • 2021 年 3 月 (2)
  • 2021 年 2 月 (8)
  • 2021 年 1 月 (18)

标签

3dtiles anr Bezier Curves BillBoard C++ CDN CivilDesigner DLL EasyX fog glTF MFC Midas W Midas XD NormalMapping ObjectARX ODA OpenGL OpenXML Open XML PBR revit WinDbg 基坑设计 影响线 截面特性 桥梁 桥梁检测 桥梁设计 算法 计算几何 设计模式

书签

  • 李燕良的CSDN
  • 崔济东的博客
  • C++爱好者博客
  • 陈学伟的博客
  • 贾苏的博客
  • 陈睦锋的博客
  • 孙勇的博客

统计

  • 0
  • 157
  • 86
  • 388
  • 145
  • 268,860
  • 77,773

实时访问地域

© 2025   liyanliang.net Copyright. All Rights Reserved.