![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
酬勤-人间道
这个作者很懒,什么都没留下…
展开
-
Silk.Net Opengl 创建基于WPF或者Winform 的显示控件
上面控件的设计方式,不单单是可以进行封装SilkGL,还可以封装OSG,VTK,Qt,PLC等等第三方的Windoes窗口,只需要继承一下那个HostBaseUIElement 这个基础控件类即可,后续我思考把OSG的也弄一个进来,毕竟OSG的Earth还是蛮有意思的.原创 2022-09-12 20:48:36 · 2531 阅读 · 6 评论 -
每个人都应该写一套自己的框架
设计一套独属于自己的开发框架;原创 2022-09-06 20:22:41 · 239 阅读 · 1 评论 -
AutoFac使用笔记以及操作技巧(保姆级操作)
背景:AutoFac是解决项目耦合的比较不错的框架.是构建大型项目上的一把利器.这里就记录一下安装以及使用的过程以及心得.方便新手尽快上手使用过程:1.安装:2.引入命名空间:3.两个部分,注册+使用: ///注册容器 public Autofac.ContainerBuilder servers { get; set; } ///从容器中获取服务的方式 p原创 2022-09-05 17:20:34 · 2359 阅读 · 0 评论 -
c#,仿照vs设置属性框
背景:在日常开发中,我们容易遇到,针对某一个类型,设置对应的可修改的属性表控件. 几个还好,要是几十个.难道我们要提前设计几十个属性表吗?No!需求:自行设计: 可以对传入的对象:1.自动提取其属性.并完成对该类型对应的基本元控件的创建.2.在修改该对象属性的时候,属性表相对应的状态也随之改变.3.在属性表的状态改变的时候, 该对象的状态随之改变效果展示:实现思路以及关键代码.基本使用反射的知识.然后自定义特性 #endregion ...原创 2021-10-15 18:03:15 · 1044 阅读 · 3 评论 -
用CAD绘制一个播放器,获取远程RTSP地址并播放视频
1. 我们先绘制几个播放器2.找一些RTSP流地址,进行播放链接tsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov3.进行播放思路:整体获取远程流数据-->缓存本地,进行单独绘制-->更新上述图元绘制的内容, 有一点,就是整个图元的设计,需要自己从底层写起...原创 2021-08-23 15:33:01 · 220 阅读 · 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 评论 -
WPF中,绘制AutoCAD中dxf文件的时候,以及自己交互式绘制弧度的一些记录
先看效果:这个是通过鼠标交互,三点绘弧成功...之间的注意事项dxf中,弧度的参数都是圆心. 起始角度,结束角度.半径. 这几个参数.但是WPF中弧度的表示. 却是需要 起始点.结束点.尺寸.以及 绘制方向.优劣弧.这些参数. 实际上依据三角函数,也是比较好转换的.问题在于: 交互的时候,如何做计算? 这里记录一下用到的关键点:1.是要依据前面两个点.用向量叉积判断 绘制方向.2.依据绘制方向. 顺时针使用大弧 .逆时针使用小弧.附录一下绘制圆心的方式...原创 2021-07-14 19:39:16 · 1068 阅读 · 0 评论 -
顺便分享一下用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 评论 -
基于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 评论 -
三维gis系统 开发
开发背景之前项目要开发一个三维gis系统,可以进行DEM,BIM数据的导入,计算分析,以及RTSP流对接,传感器数据获取等等,到此,对项目做一下效果浏览:框架基于wpf+skyline;其它技术: sharpcv. opengl, vlc等等.效果预览:最后.谈一下个人感想:上面的软件对于桌面端: 说起软件,大家一般都是Qt Qwidget , 或者qml, .net winform 框架来开发, 但是论起开发效率,优雅性, 可观赏性...原创 2020-12-25 18:29:05 · 1549 阅读 · 1 评论 -
记录一下delaunary三角剖分过程
一种是,简单的对点的关系进行一下约束,硬性生成三角形面;第二种: 用delaunary三角构建.(区别明显)第三种: 是可以进行角度和面积约束的构建(暂时没有,后面用新的平台进行搭建)这种构建,应该是拓扑结构保持的比较好的.不过这个算法暂时没有移植. ==>下次使用tetGen,这个库来进行四面体剖分. 目前的带上使用(osg+qt; IDE:vs+qt_tool这些工具,进行搭建一个三维处理框架平台. (虽然也使用过sharpGL进行过平移,旋转的手动设计,但是工作量..原创 2020-12-18 16:57:33 · 470 阅读 · 1 评论 -
贝塞尔参数化求解过程,免的以后忘了
原创 2020-12-17 18:09:32 · 127 阅读 · 0 评论 -
插件 框架 搭建(记录一下)
背景大家设计软件的时候,基本都是封装成库的形式来使用, 虽说这种方式大大提高了灵活性,但是远远达不到所加即所得.插件虽然也是库的形式,但是由于其设计理念.插件的灵活性远远大于单纯的库.当然,其中一些编写难度也随之提升.之前完成的项目,由于考虑到后期项目的灵活可配置.所以需要进行项目插件化(不亚于重写)设计需要里面核心就是:设计模式中的策略模式+ 迪米特依赖倒置法则. 由于这里使用了wpf这个框架(以后把Qt那版找机会发出来),所以 .net本身的优势. 反射, 结合这些知识,我们就可以着手设原创 2020-12-08 10:57:42 · 372 阅读 · 0 评论 -
关于GDAL读取git数据,重新封装易用
背景:涉及到tif图像格式的时候,我们有时候会直接用到里面的经纬度数据, 每次转换的时候,有的还需要读取.tfw等文件,实际上..tfi图像中,本身就存储了这些信息,这样就比较麻烦了现在,我们自己封装一个类,读取的时候,以及之间的转换,都一清二楚,不至于出错代码: public class TiFDataInfo { public enum TranFormatEnum { LeftTopPositionX = 0,原创 2020-11-12 16:55:57 · 117 阅读 · 0 评论 -
skyline的虚实融合
背景:skyline本身的直播推流只满足RTSP这种方式, 但是RTMP等其它格式并不满足. 又加上,需要对当前的投影视频,单帧要做处理的话,完全做不到.所以,这个功能并满足不了项目需求开发的一些关键知识:1. 首先要对RTSP或者RTMP的协议做一定了解.2.对图像以及视频流有相关了解.3.掌握异步多线程以及双缓存的相关概念;功能展示:这个大体做到了对直播的播放,停止,帧处理之后的再展示开发设计:1.首先我们要设计一个中间缓存Imagequeue,这个类主要是对每.原创 2020-11-12 16:46:50 · 184 阅读 · 0 评论 -
开挖分析
背景:由于项目需求.skyline本身的开挖并不能满足日常计算,所以这里需要自己重新开发: 主要包括挖方和填方的计算. 需要用到的工具是GDAL,并自己将tif图像的数据,转成具体的经纬度数据.1.有了上述准备之后(主要是Tif数据处理), 接下来我们准备Dem数据,我们使用skyline本身一些函数,通过一个子线程,将通过鼠标选取的区域,和tif规定的区域求交之后. 将这部分相同的区域的原始dem数据获取(注意skyline本身获取数据的时候,通常放在UI线程中,不然其效率很低.这是一个坑);原创 2020-11-12 14:58:56 · 462 阅读 · 1 评论 -
设计模式之:命令行模式
按自己对命令模式的理解.进行了一个简单的订餐情形演练,记录一下:主要是先抽象了一个基类person: {基类派生了服务员,厨师,顾客}, 其中每种做的食物,抽象成一种命令.最后使用的时候,就按照: 顾客进来,点餐-->服务员招待-->通知厨师做饭; 同时维护了一个订单系统,便于服务员随时参看并更新顾客信息;public class 命令模式_23 { //模拟一下实际的餐厅的运作模式. //顾客... //餐厅: .原创 2020-11-12 14:24:35 · 357 阅读 · 0 评论 -
洪水淹没分析
背景: 在使用skyline开发的过程中,有些功能并不满足实际需求,所以我们就需要自己重写设计以及做一些计算,比如模拟水淹过程,水淹洼地分析,以及水淹面积和体积计算等等.需求整个计算过程: 水淹算法本身并不难,只是种子填充算法的扩展. 通俗点讲,就是像素之间的连通域问题; 难的是在从鼠标选择区域->切割改区域的地形数据->将三维地形数据降维处理->应用算法处理之后->反映射原始数据->三维数据面片化->构建棱柱体->计算共面非共面的不规...原创 2020-11-06 12:07:29 · 1439 阅读 · 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 评论