![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
WPF
酬勤-人间道
这个作者很懒,什么都没留下…
展开
-
AutoFac使用笔记以及操作技巧(保姆级操作)
背景:AutoFac是解决项目耦合的比较不错的框架.是构建大型项目上的一把利器.这里就记录一下安装以及使用的过程以及心得.方便新手尽快上手使用过程:1.安装:2.引入命名空间:3.两个部分,注册+使用: ///注册容器 public Autofac.ContainerBuilder servers { get; set; } ///从容器中获取服务的方式 p原创 2022-09-05 17:20:34 · 2359 阅读 · 0 评论 -
参数建模以及和地形求交计算
背景最近有项目要求,在dem地形上,进行参数化建模,沟槽的边界位置和dem地形数据求交,从而生成契合地形边界的模型关键点基本上,是三维模型3ds的生成,以及和地形求交的计算成果展示原创 2021-12-09 18:33:27 · 2411 阅读 · 2 评论 -
参数化建模一些经验总结(3DS)
背景:在数字地球开发的时候,我们有时候为了方便, 只需要拉取一条折线, 就希望可以进行沟槽,以及其它渠道的自动化生成. 所以,这里首先第一步,就需要能对参数进行实时的建模.效果图:但是在生成模型的时候,我们有时会忽略很多细节,导致生成的模型出现各种问题.问题:1.比如说这种: 我只是消减了一个面,就造成了,随着相机视角,其他面显示不全(OPengl 优化渲染的时候,面的遮挡隐藏问题).2.优化三角面生成的顺序不一样,也会造成这种情况...解决方案流程:1.先...原创 2021-11-25 11:33:24 · 1478 阅读 · 0 评论 -
WPF之.身体姿态,小demo演示(基本的姿态框架搭建完成,)
原创 2021-10-24 23:49:42 · 243 阅读 · 0 评论 -
GDI绘制特殊图元线段
背景:GDI绘制图元,尤其特殊的线段:比如公路线段, 蚂蚁线, 特殊量尺线等等,基本的线段样式是不满足的,所以,需要自定义绘制.效果图关键代码 public class ExpandHelp { public static double GetLength(PointF startPoint, PointF endPoint) { return Math.Pow(Math.Pow(endPoint.Y - s..原创 2021-08-12 16:25:17 · 214 阅读 · 0 评论 -
用CAD绘的大展宏图.并加载之
原创 2021-07-20 08:54:07 · 279 阅读 · 0 评论 -
激光点云文件加载
背景近期的项目,需要加载激光点云las文件. 解析起来也是有些麻烦.不过好在经过一番折腾.顺利解决了这个问题.接下来就是加载显示的问题了效果在自己的软件中显示:关键代码:主要是点云的一些加载.基本上网上一大堆.后期加入自动预览整条隧道的功能,一步一步进行开发吧...原创 2021-06-01 14:50:44 · 313 阅读 · 0 评论 -
AutoCAD 文件,解析Mesh.polyMesh等过程记录
背景:在自己搭建的二维绘图设计软件中,需要导入CAD文件,并进行二次分析操作测试. 所以,CAD图元的解析就是个问题.这里记录一下Mesh图元的解析过程, 比较简单,仅作记录过程:Mesh 主要包括 顶点 和面片的数量其二者之间保存了面的数量,而面包含了顶点的绘制顺序..按照里面的顺序,我们进行一番分析:1.总共5个顶点1->(410,-90,0)2->(490,-80,0)3->(470,-50,0)4->(490,-...原创 2021-05-21 18:02:37 · 971 阅读 · 1 评论 -
二维绘图实录: 解决绘制百万简单图元,不卡的一种思路
背景我们在绘制大量图元的时候,如果绘制区域瞬间有大量的图元要绘制,比如百万条,千万条图元, 那么如果不做优化的话, 会瞬间导致程序卡死,如何解决呢?先看我解决的结果示意图展示以上,我随机绘制了 200万 个随机线条, 然后拖动整个面板, 一点也不卡, 我之后绘制了一千万个线条, 也是不卡的解决办法1. 实际上,第一图元的存放,要按照金字塔的形式来存储, 放大的时候,展示金字塔底部的那些数据, 缩小的时候,展示金字塔顶部的那些数据. 这样,显示区域就不会同时渲染太多图元2...原创 2021-04-20 09:50:57 · 446 阅读 · 3 评论 -
小型二维绘图软件开发实录五
背景最近有空,继续完成这个小软件底层框架的设计.1.这里除了添加了绘制矩形,圆,椭圆等基本图元之外, 重新调整了组织树的控制,以及辅助图元组和绘制图元组分类2.添加了清除画布, 模型复原, 拾取图元并拖动图元的底层框架的设计,以及解决了无限画布放大缩小之后,导致的拖动距离偏移失准的问题效果展示图后续的设计以及感悟1.我想把之前的直播推流的功能加进来,然后弄成画一个视频,就可以播放的功能来2.后续实想可以把图元任意的重新放大,缩小旋转的功能.3.在程序设计中, 多添加一些设计模原创 2021-04-04 00:38:35 · 257 阅读 · 0 评论 -
二维CAD绘图三: 添加控件树,并对图元进行统一管理
背景由于目前大多数绘图都有自己的图元管理树,所以,这里,我们也自己写一套,并对图元进行统一的 增 删,修改属性等等操作效果图这个树以后陆陆续续完善, 能进行一些算法上有趣的验证也不错后续之前那个自己写的小项目.由于拔插硬盘,导致项目都成了乱码....心累,所以花了点时间,又重新整理重写了...心态崩了......原创 2021-03-24 10:34:44 · 312 阅读 · 1 评论 -
使用HandyControls: 资源加载不了
在使用HandyControls,会用到两个库这里必须注意,两个库的版本要一致.都使用 V3.0.0<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/SkinDefault.xaml" />这个资源加载不出来的....原创 2021-03-16 17:18:22 · 4027 阅读 · 2 评论 -
顺便分享一下用WPF设计自定义tree控件树.一些增删改查节点的方式
背景我觉得把自己的设计过程的小demo整理分享出来.顺便后续自己的回溯挺好效果图关键代码节点设计类namespace Tree{ public class ARenderable : ViewModelBase { private String _name; /// <summary> /// Name of the renderable object /// </summary&...原创 2021-01-28 18:51:53 · 865 阅读 · 1 评论 -
CAD小型软件开发二
背景这个小软件.两个版本,一个添加了新的渲染图层; 一个旧的只是显示.但是个人认为,旧的虽然套用了设计模式.但是组合起来不直观.先看一下改造之后的.只是个简单的显示.以及背景色修改(提一句.opengl我是用线性裁剪的方式来修改背景的.其他人不知道如何做的)效果展示...原创 2021-01-28 18:31:19 · 275 阅读 · 0 评论 -
基于WPF开发了一款简单的小型CAD软件.放个效果图
背景最近需要对特定模型进行特定处理.所以.c++和osg的那款剖面先放一段落. 现在基于.net框架. 基于wpf等相关技术,开发了初步的小型CAD软件. 后续的功能陆续放上这个初步的功能,主要是自行设计了CAD的渲染图层.放个效果,记录一下.效果图...原创 2021-01-25 18:24:45 · 2622 阅读 · 3 评论 -
写给自己的wpf 总结,在wpf中,画图的时候,方法总结一二
public void loaded_Image() { Console.WriteLine("ltbufffer的大小 " + ltBuffer.Count); if (ltBuffer.Count>640) { //原创 2016-11-26 14:11:20 · 2525 阅读 · 0 评论 -
使用Rest服务,开发的一款小型数据访问工具
背景之前项目有涉及到访问远程传感器数据功能,所以,基于Rest服务,写了一款小工具软件效果预览由于服务器访问不了,只能看看样子实现代码:UI 文件 xaml代码. <Border> <Grid> <Grid.RowDefinitions> <RowDefinition Height="0"></RowDefinition> ..原创 2020-12-25 19:13:45 · 327 阅读 · 0 评论 -
记录一下delaunary三角剖分过程
一种是,简单的对点的关系进行一下约束,硬性生成三角形面;第二种: 用delaunary三角构建.(区别明显)第三种: 是可以进行角度和面积约束的构建(暂时没有,后面用新的平台进行搭建)这种构建,应该是拓扑结构保持的比较好的.不过这个算法暂时没有移植. ==>下次使用tetGen,这个库来进行四面体剖分. 目前的带上使用(osg+qt; IDE:vs+qt_tool这些工具,进行搭建一个三维处理框架平台. (虽然也使用过sharpGL进行过平移,旋转的手动设计,但是工作量..原创 2020-12-18 16:57:33 · 470 阅读 · 1 评论 -
插件 框架 搭建(记录一下)
背景大家设计软件的时候,基本都是封装成库的形式来使用, 虽说这种方式大大提高了灵活性,但是远远达不到所加即所得.插件虽然也是库的形式,但是由于其设计理念.插件的灵活性远远大于单纯的库.当然,其中一些编写难度也随之提升.之前完成的项目,由于考虑到后期项目的灵活可配置.所以需要进行项目插件化(不亚于重写)设计需要里面核心就是:设计模式中的策略模式+ 迪米特依赖倒置法则. 由于这里使用了wpf这个框架(以后把Qt那版找机会发出来),所以 .net本身的优势. 反射, 结合这些知识,我们就可以着手设原创 2020-12-08 10:57:42 · 372 阅读 · 0 评论 -
c# linq 操作数据结构类
记录一下,免的后面忘了定义一个数据结构,下面的操作以这个为蓝本 public class EarthNodeInfo { public EarthNodeInfo() { } public int X { get; set; } public int Y { get; set; } public int Z { get; set;原创 2020-09-12 23:19:43 · 112 阅读 · 0 评论 -
.net Rest服务访问
趁热打铁,记录一下访问rest服务的过程以及中间遇到的坑原创 2020-06-30 23:55:32 · 984 阅读 · 0 评论 -
记录一下在加载COME组件,在C# WPF中调用组件出现的问题
一:首先要注意,COME组件技术是在win32 下的32位操作系统下开发的,而我们在wpf中,要将框架的 AnyCPU 改成 x86型的目标平台,这样就可以使用了。截图如下:...转载 2018-03-31 10:47:45 · 563 阅读 · 0 评论 -
关于在C#中,调用C++ COME组件SDK 中的
我们使用C++ COME 开发组件,会遇到指针等做输入输出参数,但是我们在C#中该如何调用呢,接下来我们来看:在C++ SDK 的 .idl 文件中,有这个接口对应的,在生成C#那里之后 就会变成这样,那么问题来了: 在上面C++中 ,BYTE* pdata 是指向了一块内存空间,而且该函数的本意是:在C#处开辟一块内存空间,将这个内存空间的地址传给C++ 之后,对这块内存空间进行操作(也就是赋...原创 2018-03-31 11:08:38 · 432 阅读 · 0 评论 -
将Clound compare以及一些mathLab 等源码,集成到我们vs上来并编译
原因: 在使用openGL的过程中,有许多困惑的地方,因而想着学github上面的一些优秀的开源项目,比如compare Clound 以及 3Dmax ,mashlab 等,这些源码都是QT上的项目..好久没碰QT 了,而且一直使用的VS,所以就想着要是这些项目能加入到我们vs中来,而且能用vs达到调试的目的。可惜在中间有许多始料未及的种种意外情况,让人实在抓狂,不过好在经过大胆的尝试,终...原创 2018-11-15 18:02:29 · 387 阅读 · 0 评论 -
这里有必要记录一下 .net wpf中多线程中的使用情况.以做记录
我们在处理多线程的任务的时候,有时候要将任务拆分. 比如我的项目中 . 一方面,要采集每秒300多张图片来供点云生成;同时,要将处理之后的图片分组,进行三维点云的生成;以及对点云的的拼接以及显示; 如何做来满足这些高cpu,gpu的处理呢?多线程,但是,大家一定要注意,在这三个线程中的数据处理,一定要做队列上的缓冲,也就是,自己要设计三个缓冲类,而且是加锁和线程安全的,这样...原创 2019-07-15 20:53:52 · 181 阅读 · 0 评论 -
使用Aforge 开发的摄像头,有拍照,录像,设置帧率,分辨率等,以及对视频以及相机等的控制
先上图,这是整个功能的界面: (这里就连了两个相机,如果想连接上百个,这里提一句超级优化的方向,大家可以使用双缓冲概念(是不是很懵?),其实说白了,就是多幅位图绘制到一张位图上显示. 以前也是做实时绘制的时候,不知不觉就使用这种方式,直到后来,才听到 双缓冲 这个看似“高大上的”概念,真是倒腾概念.原创 2019-08-03 21:30:21 · 13161 阅读 · 14 评论 -
C#和C++数据交换(包括数组,指针,结构体等等格式)
这里包含了.net 和 c++DLL 交互的 指针,数组 自定义结构等等的交互案例,,基本上想到的形式都有了..原创 2019-08-25 11:57:13 · 1143 阅读 · 0 评论 -
判断一个软件,是否以及被外部打开过
软件已经被外部占用或者打开 为1 ,没有打开过,为0namespace Co获取打开某一文件的软件名称{ class Program { static void Main(string[] args) { string str2 = FileAssociation.FileExtentionInfo(FileAs...翻译 2019-09-27 11:48:06 · 296 阅读 · 0 评论 -
USB串口读取数据
UI界面xmal 文件<Window x:Class="Read串口读取速度Ports.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"...原创 2019-09-27 14:21:30 · 2885 阅读 · 0 评论 -
记录一下WPF中,获取Exe所在目录的方法比较
以上这几种都可以获取到本exe程序所在的文件夹目录但是这里我要说的是:最好使用这个比较好,在我们将修改这个输出路劲,上面代码也会自动更改为这个路劲....省了许多事情...原创 2018-03-31 10:41:24 · 1590 阅读 · 0 评论