自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(115)
  • 资源 (2)
  • 收藏
  • 关注

原创 VTK----VTK数据结构详解3(代码篇)

上篇文章()从计算机数据结构(数组、链表等)的角度对的实现原理进行了说明,下面从代码的层面详细说明它们的使用及相关实现逻辑。

2024-04-26 14:09:13 1102

原创 VTK----VTK数据结构详解2(计算机篇)

这四个单元列表还将单元分为0维、1维和2维类型。这很有用,因为可视化算法通常会以不同的方式处理不同拓扑顺序的数据。

2024-04-26 13:59:37 736

原创 VTK----VTK数据结构详解1(几何篇)

在讲VTK的数据结构之前,我们先了解可视化数据的两个特征:离散性、有规则或无规则。下面我们就来看看,这些特征是如何塑造VTK的可视化数据模型的。

2024-04-20 14:15:48 911

原创 VTK ---- 在VTK中实现printf调试着色器代码

该库证实可以直接从着色器使用printf打印输出,它的作用是简化复杂着色器程序的调试,这点非常宝贵,例如这种情况:必须查看循环中变量值的演变并且输出最终值,否则无法提供有关程序是如何工作的足够信息。目前该库是一个头文件,shaderprintf.h。该文件包含一个名为glShaderSourcePrint的函数,它在着色器需要打印功能时替代标准函数glShaderSource。该文件还包含一个名为getPrintBufferString的函数,它用于将所有打印内容以std::string的形式返回。

2024-04-18 09:20:37 30

原创 并发 ---- 多线程原理及底层实现

并发现象遍布日常生活,我们时常接触:我们可以边走路边说话;或者,左右手同时做出不一样的动作;我们每个人也都可以独立行事——当我游泳时,你可以观看足球比赛;诸如此类。

2024-04-07 09:24:51 745

原创 VTK----VTK的事件机制

事件的发送和接收对于一个应用或系统来说是一个基本的功能,所以一些通用的库对应地也建立了自己的一套管理事件的机制,例如QT、VTK都有自己的事件管理机制。VTK库中定义了很多的事件,这些事件是如何进行管理的,下面从三个方面来详细的说明。

2024-03-18 08:29:23 497

原创 VTK----VTK库中OpenGL的工作流程

VTK库中有很多封装好的几何模型,例如:vtkArrowSource、vtkConeSource、vtkCubeSource等等。了解这些模型在VTK中是如何以OpenGL的工作流程绘制出来的,就能轻松的实现VTK代码到OpenGL代码的转换,同时也是掌握VTK底层工作机制的一个比较好的方法。另外,对于VTK实现的一些特殊功能(例如以球的方式绘制点)也能知道它内部的实现原理。注:VTK创建这些对象的顺序会稍有差异。

2024-03-08 08:43:48 161 1

原创 VTK----VTK库中OpenGL状态控制

vtkOpenGLState::SetEnumState用于设置OpenGL的状态,但代码中通过switch进行了类型判断,不在case中的类型,会直接return,导致OpenGL状态设置不进去。每次渲染时,都会检查OpenGL的状态,如果被外部修改了状态,在这个函数里会被重置。但对于不在VTK控制范围内的OpenGL状态,外部是可以修改的,下面是在。这样的OpenGL状态有很多(在glew.h中),VTK中能够对哪些OpenGL的状态进行控制,控制的方式是什么样的呢?可以看到两者是有区别的,启用。

2024-03-08 08:35:15 783 1

原创 一些常用到的git命令

git checkout -b dev origin/dev //切换到dev分支上,接着跟远程的origin地址上的dev分支关联起来。//以下两个命令需要在git bash下执行,因为window下找不到grep\xargs命令。git stash -a //缓存所有文件。//git从指定的commit创建分支。//Git中获取当前分支名git。//列出包含某个提交的所有标签。//推送本地分支到远程仓库。//克隆某个Tag的代码。

2024-03-01 09:53:17 389

原创 VTK----VTK中的渲染原理

下面三张图均是用VTK实现的,从中很容易看出它们渲染的效果是有区别的:第一张图:过于明亮,看不到阴影,颜色过渡也不平缓;第二张图:阴影过于明显,图整体不够明亮;第三张图:明亮适中同时保留了阴影。VTK是如何实现不同效果的渲染的?我们又能通过什么方式去控制渲染效果?

2024-02-24 01:51:50 1207 1

原创 VTK----VTK实现三维网格数据的显示

根据提供的数据文件,实现数据的解析及三维可视化。

2024-02-20 23:35:31 188

原创 OpenGL----OpenGL实现光源位置指示(附带VTK实现)

OpenGL实现光源位置指示,用于模拟类似三维超声中光源和人体模型的位置关系。

2024-02-06 08:32:45 545 1

原创 VTK----Swig实现C++的VTK对象到Python的传递

本文详细描述了如何通过脚本编译生成带Python包的VTK库,如何用Swig实现将C++的VTK对象通过接口打包给Python使用,以及说明了每一步遇到的错误是如何解决的。

2023-12-21 17:37:39 998

原创 敏捷教练----敏捷项目管理-史诗、故事、主题

https://www.atlassian.com/agile5.4 史诗、故事、主题 假设你和你的团队想做一些雄心勃勃的事情,比如发射一枚火箭进入太空。要做到这一点,你需要组织你的工作:从最大的目标到最细微的细节。你会希望能够对变化做出反应,汇报你的进展,并坚持一个计划。史诗、故事、主题和计划正是您需要的工具。 通过了解这些流行的敏捷方法如何帮助组织工作,您的团队可以在结构、灵活性和向太空发射火箭之间取得健康的平衡。什么是故事,史诗,方案和主题?故事,也称为“用户故...

2020-06-23 08:30:24 4914

原创 敏捷教练----敏捷项目管理-工作流

https://www.atlassian.com/agile 每个软件团队都有一个用来完成工作的流程。对该流程进行规范化(即,将其建立为工作流程)使其结构清晰且可复用,从而使它具有可伸缩性。5.3.1 从简单的开始,从现在开始 当为团队实现工作流时,总是从简单的开始。抵制花几周时间(过度)设计它的诱惑。过于复杂的工作流很难理解和采用,更不用说适应了。对于软件团队,我们推荐这些基本的工作流程状态:待做: 尚未开始的工作 进行中:团队正在积极关注的工作 代码审查:工作...

2020-06-23 08:18:20 536

原创 敏捷教练----敏捷项目管理-程序

https://www.atlassian.com/agile5.2 程序 敏捷开发的早期采用者是小型的、独立的团队,他们从事小型的、自包含的项目。他们证明了敏捷模式是可行的,这让世界各地的软件制造商感到高兴并得到了改进。最近,更大的组织正在将敏捷扩展到单个团队或项目之外,并寻找将其应用到整个项目的方法。 这并非没有挑战。但这并不意味着这是不可能的!5.2.1 瀑布和敏捷 让我们从基础开始——比如敏捷的不同之处。 瀑布之类的传统项目管理风格是...

2020-06-23 08:12:57 476

原创 敏捷教练----敏捷项目管理-总览

https://www.atlassian.com/agile 5.1 总览5.1.1 什么是敏捷项目管理? 软件团队已经采用敏捷项目管理方法近十年了,提高了他们的速度、协作和响应市场趋势的能力。 但是它是什么,它能帮助您的软件团队吗?下面是开始或改进敏捷项目管理实践所需的所有知识。5.1.2 敏捷项目管理的历史 敏捷项目管理是一种迭代的方法,用于管理软件开发项目,该项目关注于连续的发布,并在每次迭代中结合客户反馈。 源自20世纪40年...

2020-06-23 08:04:36 581

原创 敏捷教练----Scrum-看板

https://www.atlassian.com/agile 4 看板4.1 总览4.1.1 什么是看板? 看板是一种流行的框架,用于实现敏捷软件开发。它要求实时沟通的能力和完全透明的工作。工作项在看板板上可视化地表示,允许团队成员在任何时候看到每个工作的状态。 在当今的敏捷软件团队中,看板是非常重要的,但是看板的工作方法可以追溯到50年前。在1940年代后期,丰田汽车开始根据超市所使用的相同模型来优化其工程流程。超市只储备足以满足消费者需求的产品,这种...

2020-06-03 21:09:57 1084

原创 敏捷教练----Scrum-每日站会和敏捷回顾

https://www.atlassian.com/agile 站会是敏捷开发的基本组成部分之一,通常是最容易被误解的部分。让我们现实点:单靠站会不会使您的团队敏捷。它不是用来夸大自我或证明工作描述合理。它也不是不是计划时间,而冲刺计划是用于计划。 它也不是故意来阻碍工作的。 它是在如果您遇到困难,寻求帮助的时候!3.7.1 什么是Scrum的站会? 在许多运动中,例如(美式)橄榄球和橄榄球,球队在每次比赛前都会挤成一团。碰头会是战略性的::在整个比赛过程中,...

2020-06-03 21:03:32 1727

原创 敏捷教练----Scrum-冲刺评审

https://www.atlassian.com/agile Sprint评审不是回顾。sprint评审是关于展示整个团队的辛勤工作的:设计师、开发人员和产品负责人。在Atlassian,我们喜欢让我们的sprint评论保持随意。团队成员聚集在一张桌子旁进行非正式的演示,并描述他们为该迭代所做的工作。这是一个提问、尝试新功能并给出反馈的时间。分享成功是构建敏捷团队的重要部分。 让我们首先回顾一下为什么团队对“完成”的定义对敏捷仪式如此重要。3.6.1 第一步...

2020-06-03 20:56:12 899 1

原创 敏捷教练----Scrum-待办事项列表(backlog)

https://www.atlassian.com/agile 一个良好优先级的敏捷backlog不仅使发布和迭代计划更容易,它还传播了你的团队打算花时间做的所有事情——包括客户永远不会注意到的内部工作。这有助于为涉众和其他团队设定期望,特别是当他们为您带来额外的工作时,并使工程时间成为固定资产。3.5.1 什么是产品待办事项列表? 产品待办事项列表是根据路线图及其需求为开发团队列出的工作的优先级列表。最重要的项目显示在产品待办事项列表的顶部,这样团队就知道首先要...

2020-06-03 20:50:07 5082

原创 敏捷教练----Scrum-仪式

https://www.atlassian.com/agile3.4 仪式 会议或“仪式”是敏捷开发的重要组成部分。但它们是许多重要元素之一,不应该在真空中进行。(在瀑布项目中加入一些仪式并称之为“敏捷”,这听起来很诱人,但这不会给你带来任何好处。) 让我们看一看每一个敏捷仪式,并了解它们是如何授权团队和驱动敏捷开发的。注意:这些仪式中的许多仪式都来自Scrum的实践,这是一种迭代的,有时间限制的实现敏捷的方法。 这些仪式背后的概念可以应用于其他形式的敏捷,例如看板或lea...

2020-05-25 08:17:51 413

原创 敏捷教练----Scrum-冲刺计划

https://www.atlassian.com/agile3.3.1 什么是冲刺计划? Sprint计划是scrum中开始Sprint的事件。sprint计划的目的是定义在sprint中可以交付什么,以及如何实现该工作。Sprint计划是与整个scrum团队协作完成的。 与体育界不同的是,scrum鼓励你总是全速前进,这样你就可以在不断学习和改进的同时交付可用的软件。 在Scrum中,冲刺是完成所有工作的固定时间段。 但是,在您采取行动之前,您必须设置冲...

2020-05-25 08:10:34 1274 1

原创 敏捷教练----Scrum-冲刺

https://www.atlassian.com/agile3.2.1 什么是冲刺? “冲刺”是指scrum团队在短时间内完成一定数量的工作。sprint是scrum和敏捷方法的核心,正确的sprint将帮助敏捷团队开发出更好的软件,减少令人头痛的问题。 Atlassian公司的Jira软件团队产品经理梅根·库克(Megan Cook)说:“使用Scrum,一个产品是在一系列被称为冲刺的迭代中构建的,这些迭代将大型、复杂的项目分解成小块。” “sprint使...

2020-05-25 08:05:09 1459

原创 敏捷教练----Scrum-概述

https://www.atlassian.com/agile3.1 总览 Scrum是一个框架,可以帮助团队一起工作。就像橄榄球队(以此为名)为大型比赛训练一样,Scrum鼓励团队学习经验,在解决问题时自我组织,并反思自己的得失,以不断提高。 虽然我所谈论的Scrum最常被软件开发团队使用,但是它的原理和课程可以应用于各种团队合作。这是Scrum如此受欢迎的原因之一。人们通常认为Scrum是一种敏捷的项目管理框架,它描述了一组会议,工具和角色,它们可以协同工作,以帮助团队构...

2020-05-22 08:29:59 507

原创 敏捷教练----敏捷宣言

敏捷软件开发宣言 我们一直在实践中探寻更好的软件开发方法, 身体力行的同时也帮助他人。由此我们建立了如下价值观: ...

2020-05-22 08:12:50 209

原创 敏捷教练----什么是敏捷

1 什么是敏捷? 敏捷是一种用于项目管理和软件开发的迭代方法,可帮助团队更快地为客户提供价值,并减少麻烦。敏捷团队没有将一切都押注在“大爆炸”发布上,而是以较小但可消耗的增量交付工作。需求,计划和结果会得到持续评估,因此团队拥有自然的机制可以快速响应变化。 传统的“瀑布式”方法有一个规程贡献给项目,然后把它“扔到墙外”给下一个贡献者,而敏捷方法需要跨功能的协作团队。团队成员之间的开放沟通、协作、适应和信任是敏捷的核心。尽管项目负责人或产品负责人通常对交付的工作进行优先级排序,但团...

2020-05-22 08:01:20 390

原创 持续集成、持续交付、微服务----微服务

https://www.atlassian.com/continuous-delivery/microservices什么是微服务? 术语“微服务”是一个现代术语,用于描述分布式、网络化项目中的传统“关注点分离”模式。微服务是一种遵循古老的unix基本哲学的思想,即“小而锋利的工具”。这两个概念都建立在另一个基本的计算机科学“组合”模式的基础上,这意味着复杂系统是较低层次的可组合实体的总和。 组合贯穿于软件项目的所有层。在最底层,即“单元级”,各个独立的代码函数通过共享接口相...

2020-05-21 21:32:45 817

原创 持续集成、持续交付、微服务----CI/CD

背景 从最初的?瀑布模型,到后来的?敏捷开发,再到今的?DevOps, 这是现代开发人员构建出色产品的技术路线。 随着 DevOps的兴起,出现了持续集成,持续交付(CI/CD)和持续部署的新方法, 而传统的软件开发和交付方式在迅速变得过时。过去的敏捷时代里, 大多数公司的软件发布周期是每月、每季度甚至每年(还记得那些日子吗?),而在现在 DevOps 时代,每周、每天甚...

2020-05-21 21:05:51 447

原创 持续集成、持续交付、微服务----代码托管平台Bitbucket-Bitbucket功能说明

Bitbucket简介Bitbucket 的功能不仅仅是 Git 代码管理。借助 Bitbucket,团队可以集中规划项目、开展代码协作以及进行测试和部署。免费的无限个私有代码库 5 人以下的小型团队免费使用。可以扩展为 Standard(3 美元/用户/月)或 Premium(6 美元/用户/月)。一流的 和Jira 、Trello 集成 可以直接从 Jira 事务或 Trello 卡片创建 Bitbucket 分支,确保项目井井有条。持续交付功能 ...

2020-05-21 14:00:23 1378

原创 GUI Design Studio----如何使用数据表

14.1 数据表概述仅限专业版数据表是CSV文本文件,包含数据的行和列。它们的作用就像关系数据库中的表。第一行包含表中每个字段的名称。随后的每一行代表一个数据记录。设计上的“数据”面板提供对存储在项目中的CSV文件的访问。它们必须位于特别命名的“ _Data”子文件夹中,并且不会出现在“项目”面板上。 右键单击上下文菜单和顶级“数据”菜单还有一个附加命令,用于从另一个位置导入CSV文件: ...

2020-05-20 08:23:39 655

原创 GUI Design Studio----扩展交互功能(仅适用于Pro)(二)

10.7 条件元素状态仅限专业版现在,许多元素允许根据某些表达式设置其可见性,并在适当情况下设置其启用状态: 这通常用于根据对话框中当前选择的其他选项来启用或禁用对话框中的控件。它也可以用于使控件仅在选择了相关选项时才会显示。 将元素悬停在原型信息框上时,可以在工具提示中看到元素的条件: ...

2020-05-20 07:59:29 371

原创 GUI Design Studio----扩展交互功能(仅适用于Pro)(一)

10.1 元素交互 现在,大多数元素都具有交互行为,因此您可以更改复选框状态,键入“编辑框”并在“列表框”条目中进行光标移动等。 单击某个元素将使其具有键盘焦点(如果可以接受),您也可以使用Tab键在交互式元素之间移动。使用自顶向下,从左至右的方法自动确定跳位顺序。尽管这在每种情况下都不是理想的,但通常情况下还不错,并且避免了在原型中手动设置跳位顺序的情况。 当许多元素具有键盘焦点时,可以使用空格键更改它们的状态。例如,复选框将更改状态,而按钮将激活。 ...

2020-05-19 22:45:33 434

原创 GUI Design Studio----如何创建交互式设计(二)

9.11 导航类型菜单命令:Edit | Properties... Alt+Enter工具栏:默认导航类型选择器: 导航类型控制导航到目标元素或窗口时发生的情况。建立连接时,将尽可能使用在工具栏上选择的默认导航类型。某些元素(例如大多数情节提要板动作元素)具有固定的“导航类型”,将覆盖选定的类型。在所有其他情况下,如果选择“自动”,则将根据要连接的内容选择适当的默认导...

2020-05-13 22:00:46 1170

原创 GUI Design Studio----如何创建交互式设计(一)

9.1 交互能力 能够快速创建单个屏幕的设计非常有用,但是GUI Design Studio的真正功能在于可以图形化地描述应用程序的工作流程,然后将其作为交互式原型运行。 目的是演示其背后的设计和思想。有了这些,您就可以从其他人那里获得反馈,探索替代方案以及“如果...怎么办”?场景,确定设计中缺少的内容,并找出可以忽略的内容。 但是,了解这些原型的局限性很重要。这是用户界面设计工具,而不是应用程序开发工具。当前支持的行为包括在窗口之间导航的功能;单击屏幕元素,使另...

2020-05-13 08:48:35 995

原创 GUI Design Studio----如何使用位图图像

7. 如何使用位图图像7.1 将图像添加到设计中菜单命令:Design | Add Bitmap… 在GUI Design Studio中,将位图图像添加到设计文档中很容易。 一种方法是使用“设计|添加位图...”菜单命令在磁盘上搜索要添加的图像文件。 但是,如果您经常使用大量图像并将它们保存在同一文件夹中,则可以将文件夹链接添加到项目,以便该文件夹中的所有图形文件以...

2020-03-30 12:20:22 569

原创 GUI Design Studio----如何使用字体

6. 如何使用字体6.1 更改元素字体菜单命令:编辑|属性... Alt + Enter 您可以从其属性编辑器的“字体”选项卡中更改所有基于文本的元素的字体。例如,这是“文本按钮”的属性编辑器: 您可以更改字体的字样,大小和基本属性。字体也可以设置为“(默认字体)...

2020-03-30 12:06:23 339

原创 GUI Design Studio----如何排列元素

5.1 移动和调整大小 选择一个或多个元素后,您可以移动或调整它们的大小。拖动任何选定元素(无论是选定的主要元素还是次要元素)上的任何方形手柄,都会在考虑到“固定宽度”或“固定高度”限制的情况下,将所有元素的大小一起调整。 在选定元素上的其他任何地方拖动都将移动所有选定元素,包括放置在其顶部的所有子元素。如果要移动元素而不移动其子元素,则在开始拖动时按住Shift键。...

2020-03-21 20:09:46 293

原创 GUI Design Studio----如何使用设计文档

4.1 创建一个新设计菜单命令:文件| 新建 项目| 新建设计... 有两种创建设计文档的方法。 第一个使用“文件|新建”菜单命令或“新建”工具栏按钮来创建并打开空白的无标题文档,以供编辑。然后,您可以将文件保存在任何地方,但要使其成为项目的一部分,则必须浏览到正确的项目文件夹。 之后,您可能还需要刷新文件树。 这是进行快速实验和一次性设计的有用技...

2020-03-21 19:42:16 392

原创 GUI Design Studio----如何使用项目

3. 如何使用项目3.1 项目概况 使用GUI Design Studio,通常所有的工作都将在项目中完成。 项目在磁盘上具有自己的文件夹结构,并且可以包含设计文档,位图图像文件和特定于项目的图标。 项目文件存储在项目文件夹中,并具有.GDP扩展名。 有时您可能希望从另一个项目访问一个项目中的文件,例如: (1)使用通用设计组件库。 (2)引用一...

2020-03-12 21:23:05 565

解析cps3数据之后转换为的二进制文件

cps3是一种地质软件中常见的层面数据,记录的是地层结构的坐标点信息。基于该数据,可以实现地层结构的可视化展示。 cp3原始数据是Ascii编码的,包含敏感的明文坐标信息,所以为了脱敏,我将数据进行了解析存为了二进制的文件,M11.surface就是转换之后保存的二级制文件。

2024-02-20

从零开始学习VTK.pdf

该文档为本人自己整理的VTK学习文档,从零开始学习VTK,绘制各种VTK对象。文中内容与 https://blog.csdn.net/charce_you 的博客文章内容一致。

2019-07-31

gloox-0.9.9.12

用vs2010编译好的gloox动态库,可以结合我的博客文章进行C++的即时通信开发

2014-08-07

空空如也

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

TA关注的人

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