2019-11-19 21:34:56
学到这里,其实我们已经拥有一部分图形学基础知识了,这一篇我们来做一个好玩的计算,就是计算π。我们知道π叫圆周率,其定义就是圆的周长和圆的直径的比值,为什么要给出π(圆周率)这种定义呢?实际上是因为圆在日常生活中应用比较广泛,比如车轮是圆的,汽车的里程数,计算轮胎转动的圈数乘轮胎的圆周长就得到了,那么我们怎么计算轮胎的圆周长呢,轮胎的直径很好测量,随便拿个尺就能量出来了(当然轮胎的周长也好测量,把轮...
2019-11-19 20:58:14
这一篇我们来看一下直线和平面在计算机中的数学表示,因为我们程序中不可能用笔和纸去画一个直线或者平面,我们只能通过函数或者向量组合表示这些抽象的概念,这样才能带入并实现具体的功能。首先来看一下二维xy坐标轴下直线的表示,如下图:一个二元一次方程就能表示直线在坐标系中所有坐标点的集合了,可以看作a*x+b*y+c = 0。接下来的问题是如何表示一个空间xyz坐标系中的直线,如果平面坐标系中直线是a*x...
2019-11-19 20:53:10
之前我们学习了物理意义上的做功,也就是数学中向量点积的实际意义,这一篇我们学习物理上另外一种力的作用,也就是力矩。物理上定义力矩是力对物体产生转动作用的物理量,这里我们想象一下现实中的力矩现象,比如陀螺,老式摇动柴油发动机,打隧道用的隧道机械都有力矩在其中。这里我们看一下老式柴油发动机的摇把,如下图:手对摇把产生OA的半径圆的切线方面力F摇动,那么会产生一种沿着Z轴的力矩L,物理上把求力矩L定义为...
2019-11-19 20:49:21
上一篇讲了向量的加减分配等计算,那么紧接着就是应该来讲乘除了吧,我们知道普通数值都有加减乘除开方等等计算,比如:10x10 = 100 10÷10 = 1那么向量AxB = ? A÷B = ? 我们知道向量其实是多个数值分量组成的一个集合,那么向量相乘又怎么处理呢?是分量相乘再相加,还是分量相加再相乘?然后就算给一个向量相乘的规范,那有什么意义呢?能解决什么实际问题?这里我们从物理上来考虑向量...
2019-11-19 20:44:28
前面写完三角函数分类博客,我们具备了基础的三角函数推导能力和知识,接下来就要讲向量与几何方面了。但凡买一本讲解向量的书,一开始莫不是讲解笛卡尔的城市建设所采用的坐标系概念,因为几何的英文geometry就有“地理测量”的意思,据说几何学本来就是为了测量大地的。1.下面我们来一些基础的定义:ps:“定义”这个词语以后会经常出现,我们都是一些“叛逆”的小青年,就是反感“定义”、“规定”等词语,这些词语...
2019-11-19 19:31:43
如下图,我们把角度看作是扇形的圆心角来思考,如何用长度来度量角度。圆心角的大小与其所对应的弧度成正比,所以可以用弧长来表示角度。在图8-10-1中,θ1:θ2=L1:L2,如果L2是K1的2倍,则圆心角θ2也是圆心角θ1的2倍。也就是说,角度比等于弧长比。但是,弧长本身是随扇形大小即半径不同而产生差异。这样,圆心角的度数就可以用弧长和半径的比例来表示。如图8-10-2,同一圆心角的两个扇形互为相似...
2019-11-19 19:27:48
如今的软件市场,竞争已经进入白热化阶段,功能强、运算快、界面友好、Bug少、价格低都已经成为了必备条件。这还不算完,随着计算机的多媒体功能越来越强,软件的界面是否色彩亮丽、是否能通过动画、3D等效果是否吸引用户的眼球也已经成为衡量软件的标准。软件项目成功的三个要素是:资源、成本、时间。无论是为了在竞争中保持不败还是为了激发起用户对软件的兴趣,提高软件界面的美化程度、恰当的将动画和3D等效果引入应用...
2019-11-19 19:25:39
图形用户界面应用程序较之控制台界面应用程序最大的好处就是界面友好、数据显示直观。CUI程序中数据只能以文本的形式线性显示,GUI程序则允许数据以文本、列表、图形等多种形式立体显示。用户体验在GUI程序设计中起着举足轻重的作用-----用户界面设计成什么样看上去才足够的漂亮?控件如何安排才简单易用并且少犯错误?这些都是设计师需要考虑的问题。WPF系统不但支持传统的Winfrom编程的用户界面和用户体...
2019-11-19 16:23:38
我们把有用的东西称为资源。“兵马未动,粮草先行”-----程序中的各种数据就是算法的原料和粮草。程序中可以存放数据的地方有很多,可以放在数据库里、可以存储在变量里。介于数据库存储和变量存储之间,我们还可以把数据存储在程序主体之外的文件里。外部文件与程序主体分离,这就有可能丢失或者损坏,编译器允许我们把外部文件编译进程序主体、称为程序主体不可分割的一部分。这就是传统意义上的程序资源(也称为二进制资源...
2019-11-19 14:14:25
WPF为我们准备了完善的命令系统,你可能会问:“有了路由事件为什么还需要命令系统呢?”。事件的作用是发布、传播一些消息,消息传达到了接收者,事件的指令也就算完成了,至于如何响应事件送来的消息事件并不做任何限制,每个接收者可已用自己的行为来响应事件。也就是说,事件不具有约束力。命令和事件的区别就在于命令具有约束力。的确,在实际编程工作中,即使只用事件不用命令程序的逻辑一样被驱动的很好,但我们不能够阻...
2019-11-19 13:51:01
就像属性系统在WPF中得到了升级、进化为依赖属性一样,事件系统在WPF也得到了升级-----进化成为了路由事件(Routed Event),并在其基础上衍生出命令传递机制。这些机制在很大程度上减少了对程序员的束缚,让程序的设计和实现更加的灵活,模块之间的耦合度也进一步降低,这一章我们一起来领略一下新消息机制的风采。8.1 近观WPF的树形结构路由一词的意思大概是这样:起点...
2019-11-19 10:08:50
通过前面的学习,我们已经知道Data Binding是WPF“数据驱动UI”理念的基础。上一章我们将主要的精力放在了Binding的数据源这一端,研究了Binding的Source和Path。本章我们将把目光移向Binding的目标端,研究一下什么样的对象才能作为Binding的Target以及Binding将把数据送往何处。1.1 属性(Property)的来龙去脉程序的本质就是“数据...