随笔分类 - Programming
.Net(C#, WPF), OpenGL
摘要:本文介绍一下在C#中执行执行批处理文件(*.bat)的方法。
阅读全文
摘要:虽然在OpenGL中可以使用glBegin(GL_POLYGON)来画一个多边形,但是它只能实现简单的凸多边形。对于一些复杂的多边形,比如凹多边形,或者有实心有空心的多边形,OpenGL的glBegin(GL_POLYGON)就不能满足需求了。通常可以采用一种叫做"分格化"的方法来画复杂的多边形。
阅读全文
摘要:static意思是静态,可以修饰类、字段、属性、方法。本文介绍一下它的用法。
阅读全文
摘要:在C#中,在程序中使用指针,编译时会出现“Unsafe code may only appear if compiling with /unsafe”的错误提示。本文谈一下出错原因和解决办法。
阅读全文
摘要:
本篇介绍一下使用OpenGL绘制圆环体的方法。程序是在C#和OpenTK环境下编译的。
阅读全文
![](http://images.cnitblog.com/blog/477176/201302/16170840-9db1a1c0ea4c4a5fbd5f1a7735129b17.png)
摘要:
已知弹簧的起点和终点坐标值,在OpenGL中绘制该弹簧。本篇介绍的弹簧分两种,分别是无粗细的(使用LineStrip绘制)和有粗细的(使用QuadStrip绘制)。程序是在C#和OpenTK环境下编译的。
阅读全文
![](http://images.cnitblog.com/blog/477176/201302/16170411-9fa36307e4834c1e83205b65c0f95900.png)
摘要:
本文主要介绍VC与Matlab混合编程的两种方法,并详细介绍了VC向Matlab传递复杂数据:结构体的方法,有详细代码说明。
阅读全文
![](http://images.cnitblog.com/blog/477176/201302/05153431-cb978e240c034d5f8798942c261557a7.jpg)
摘要:
Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office。也可说是一种应用程式视觉化的Basic Script。本文总结了一些VBA的常用代码。
阅读全文
![](http://images.cnitblog.com/blog/477176/201301/22105206-120d835df1df46c7b733a97aedeb3dcf.png)
摘要:The projection matrix and model-view matrix are set and modified with a variety of commands. The affected matrix is determined by the current matrix mode. The current matrix mode is set withvoidMatrixMode(enummode);which takes one of the three pre-defined constantsTEXTURE,MODELVIEW, orPROJECTIONas t
阅读全文
摘要:在WPF中绘制形状时,如果数据量大(例如一条Polyline有10万多个数据点),绘制过程会很慢。目前能想到的解决办法有: 1. 将形状绘制在位图里。2. 升级到最新.net4.5,WPF性能提升不少(这个要赞) 3. 使用DrawVisual来实现画图。下面主要谈一下DrawVisual的用法。Visual 类的层次结构如下:DrawingVisual 继承自Visual,是一个用于呈现形状、图像或文本的轻量绘图类。 此类之所以被视为轻量,是因为它不提供布局或事件处理功能,从而能够改善运行时性能。 因此,绘图最适于背景和剪贴画。 DrawingVisual 可用于创建自定义可视化对象。在下面
阅读全文
摘要:1. 哈希表(HashTable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中keyvalue键值对均为object类型,所以Hashtable可以支持任何类型的keyvalue键值对.2. 什么情况下使用哈希表(1)某些数据会被高频率查询(2)数据量大(3)查询字段包含字符串类型(4)数据类型不唯一3.哈希表的使用方法哈希表需要使用的namespaceusing S
阅读全文
摘要:在OpenGL中有两个比较重要的投影变换函数,glViewport和glOrtho.glOrtho是创建一个正交平行的视景体。 一般用于物体不会因为离屏幕的远近而产生大小的变换的情况。比如,常用的工程中的制图等。需要比较精确的显示。 而作为它的对立情况, glFrustum则产生一个透视投影。这是一种模拟真是生活中,人们视野观测物体的真实情况。例如:观察两条平行的火车到,在过了很远之后,这两条铁轨是会相交于一处的。还有,离眼睛近的物体看起来大一些,远的物体看起来小一些。glOrtho(left, right, bottom, top, near, far), left表示视景体左面的坐标,ri
阅读全文
摘要:glAccum 操作累加缓冲区glAddSwapHintRectWIN 定义一组被SwapBuffers拷贝的三角形glAlphaFunc允许设置alpha检测功能glAreTexturesResident 决定特定的纹理对象是否常驻在纹理内存中glArrayElement 定义一个被用于顶点渲染的数组成分glBegin,glEnd 定义一个或一组原始的顶点glBindTexture 允许建立一个绑定到目标纹理的有名称的纹理glBitmap 绘制一个位图glBlendFunc 特殊的像素算法glCallList 执行一个显示列表glCallLists 执行一列显示列表glClear 用当前值清
阅读全文
摘要:1 glFlush就是强制刷新吧,要知道OPENGL是使用一条渲染管线线性处理命令的,一般情况下,我们提交给OPENGL的指令并不是马上送到驱动程序里执行的,而是放到一个缓冲区里面,等这个缓冲区满了再一次过发到驱动程序里执行;很多时候只有几条指令是填充不满那个缓冲区的,这就是说这些指令根本没有被发送到驱动里,所以我们要调用glFlush来强制把这些指令送到驱动里进行处理。2glutSwapBuffers其实就是交换缓冲区啦,估计是你的程序使用的是双缓冲技术吧;用了这种技术的话,你所有的绘制都是绘制到一个后台的缓冲区里面的,如果不交换缓冲区,就看不到绘制的东西了
阅读全文
摘要:如果在程序中直接更新进度条,是无法响应的。使用BackgroundWorker可以解决该问题。public partial class Form1 : Form{ BackgroundWorker backgroundWorker1 = new backgroundWorker1; public Form1() { InitializeComponent(); Shown += new EventHandler(Form1_Shown); backgroundWorker1.WorkerReportsProgress = t...
阅读全文
摘要://传统定义参数属性的方法public class MyClass{ private int _age; public int Age { get{ return _age; } set{ _age = value; } }}//如果get, set逻辑简单,可使用自动属性public class MyClass{ public int Age {get; set;} }
阅读全文
摘要:Close()函数只能关闭当前窗体。如果要关闭当前程序的所有窗体,可以用:Application.Current.Shutdown();
阅读全文
摘要:list.Sort((s1, s2)=> s1.CompareTo(s2));5.CompareTo(6) = -1 First int is smaller. 6.CompareTo(5) = 1 First int is larger. 5.CompareTo(5) = 0 Ints are equal.orderList.Sort(delegate(Order p1,Order p2){int compareDate = p1.Date.CompareTo(p2.Date);if(compareDate ==0){return p2.OrderID.CompareTo(p1.Ord
阅读全文
摘要:在C#中 \ 是转义字符,如下所示转义序列字符\’单引号\”双引号\\反斜杠\0空\a警告\b退格\f换页\n换行\r加车\t水平制表符\v垂直制表符例如输出双引号,有以下两种方法:string str1=@"""双引号""";string str2="\"双引号\"";
阅读全文