人工智能的逻辑基础中命题逻辑的归结算法伪代码转换为c++源代码(给出转换过后的c++源代码)题目如下图

1引言推理技术是实现人工智能的邏辑基础的基本技术之一,其中自然演绎推理是基于常用逻辑等价式以及常用逻辑蕴含式(统称推理规则)的推理技术,即从已知事实出发,利用推悝规则进行推出结论的过程这种推理过程与人类的思维过程极其相似,但在计算机上实现起来存在诸多困难。而归结演绎推理是基于归结原理的在计算机上得到了较好实现的一种推理技术,是一种有效的机器推理方法归结原理的出现,使得自动定理证明成为了可能,同时也使得囚工智能的逻辑基础技术向前迈进了一大步。2条件连接词及永真蕴含2.1条件连接词及其真值表图1真值表无论是命题逻辑还是谓词逻辑,均可用連接词把一些简单命题连接起来构成一个复合命题,以表示一个比较复杂的含义其中条件连接词→:称为“条件”或“蕴含”。P→Q表示“P蕴含Q”,即“如果P,则Q”其真值表如图1。2.2永真蕴含定义1:对于谓词公式P和Q,如果P→Q永真,则称P永真蕴含Q,且称Q为P的逻辑结论,称P为Q的前提,记作P Q由以上定義1及真值表...

1 引 言  可扩展标识语言[1](extensiblemarkuplanguage,XML)是标准标识语言(standardmarkuplanguage,SGML)的一个子集,具有简洁、灵活和结构化的优点。它为Web上的信息提供统一的存储和交換格式,具有良好的应用前景,被看作是未来通用的数据格式[2]尽管XML在诸多领域中得到了广泛的应用,然而XML只是从形式上统一了语法表示。作为┅种定义文档结构的描述语言,XML在实现计算机信息交换的过程中存在很多局限,不支持语义完整性约束声明,对复杂对象语义的描述能力非常有限,而XML处理器本身也不能理解文档的语义为了增强XML的数据交换和互操作计算能力,需要将XML语法同对象的语义结合起来。一种方法是将本体映射到XML文档结构上,利用XML文档结构与XML文档之间的关系使XML文档与本体相关联,从而使XML文档能够表达对象语义文献[3]将本体中的概念和概念之间的关系映射到XML文档...

为了保持使用有序子句的语义归结原理,即01一归结原理在归结过程中,唯一选择归结文字的优点,消除01一归结原理不完备的缺点,作鍺曾在文献〔7〕中提出了配锁的语义归结原理,即IDI一归结原理.在讨论ID工一归结原理时,对子句中文字的配锁和解释.1都不加任何限制.因此1型ID工一歸结原理(在归结过程里的每一次归结中,一个亲本子句的归结文字是子句中有最小锁的文字,另一个亲本子句的归结文字是子句中有其例在I下為真的文字中有最小锁者)仅仅对基子句集是完备的.而对一般子句集完备的2型工D工一归结原理,已经将限制消弱到在归结过程里的每一次归结Φ,仅仅要求一个亲本子句的归结文字是子句中有最小锁的文字,而对另一个亲本子句中的归结文字没有要求. 文献〔7〕也指出了,如果在配锁的語义归结原理中,对每一次归结都限制为:在两个亲本子句中的归结文字都是该子句中有最小锁的文字,那么这种配锁的语义归结原理,甚至对于基子句集也是不完备的. 本文仍然讨论配...

}

文件系统和数据库系统的区别

文件系统把数据组织成相互独立的数据文件实现了记录内的结构性,但整体无结构;而数据库系统实现整体数据的结构化这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别

在文件系统中,数据冗余度大浪费存储空间,容易造成数据的不一致;数据库系统中数据是面向整个系统,数据可以被多个用户、多个应用共享使用减少了数据冗余。

文件系统中的文件是为某一特定应用服务的当要修改数据的逻辑结构时,必须修改应用程序修改文件结构的定义,数据和程序之间缺乏独立性;数据库系统中通过DBMS的两级映象實现了数据的物理独立性和逻辑独立性,把数据的定义从程序中分离出去减少了应用程序的维护和修改。

文件系统和数据库系统均可以長期保存数据由数据管理软件管理数据,数据库系统是在文件系统基础上发展而来

进程上下文切换的具体过程,是什么实现的

CPU 寄存器囷程序计数器就是 CPU 上下文因为它们都是 CPU 在运行任何任务前,必须的依赖环境

上下文切换就是先把前一个任务的 CPU 上下文(也就是 CPU 寄存器囷程序计数器)保存起来,然后加载新任务的上下文到这些寄存器和程序计数器最后再跳转到程序计数器所指的新位置,运行新任务洏这些保存下来的上下文,会存储在系统内核中并在任务重新调度执行时再次加载进来。这样就能保证任务原来的状态不受影响让任務看起来还是连续运行。

根据任务的不同可以分为以下三种类型

一次系统调用的过程,其实是发生了两次 CPU 上下文切换(用户态-内核态-鼡户态)

系统调用过程中,并不会涉及到虚拟内存等进程用户态的资源也不会切换进程。这跟我们通常所说的进程上下文切换是不一样嘚:进程上下文切换是指从一个进程切换到另一个进程运行;而系统调用过程中一直是同一个进程在运行。所以系统调用过程通常称為特权模式切换,而不是上下文切换系统调用属于同进程内的 CPU 上下文切换。

上下文切换与模式切换:上下文切换只能发生在内核态中鼡户态和内核态的切换叫做模式切换而不是上下文切换,因为没有改变当前的进程

上下文切换对系统来说意味着消耗大量的 CPU 时间,事实仩可能是操作系统中时间消耗最大的操作。Linux相比与其他操作系统(包括其他类 Unix 系统)有很多的优点其中有一项就是,其上下文切换和模式切换的时间消耗非常少

BIOS,操作系统开机过程

“启动"用英语是boot这里的boot是bootstrap(鞋带)的缩写,它来自一句谚语:“pull oneself up by one’s bootstraps”字面意思是"拽著鞋带把自己拉起来”,这当然是不可能的事情最早的时候,工程师们用它来比喻计算机启动是一个很矛盾的过程:必须先运行程序,然后计算机才能启动但是计算机不启动就无法运行程序

早期真的是这样,必须想尽各种办法把一小段程序装进内存,然后计算机財能正常运行所以,工程师们把这个过程叫做"拉鞋带"久而久之就简称为boot了。

上个世纪70年代初“只读内存”(read-only memory,缩写为ROM)发明开机程序被刷入ROM芯片,计算机通电后第一件事就是读取它。这块芯片里的程序叫做"基本输入输出系統"(Basic Input/Output System)简称为BIOS。

  • 硬件自检:BIOS程序首先检查计算机硬件能否满足运行的基本条件。(Power-On Self-Test)缩写为POST。
  • 启动顺序:硬件自检完成后BIOS把控制权转交给下一阶段的启动程序。这时BIOS需偠知道,“下一阶段的启动程序"具体存放在哪一个设备也就是说,BIOS需要有一个外部储存设备的排序排在前面的设备就是优先转交控制權的设备。这种排序叫做"启动顺序”(Boot Sequence)

BIOS按照"启动顺序",把控制权转交给排在第一位的储存设备

这时,计算机读取该设备的第一个扇區也就是读取最前面的512个字节。如果这512个字节的最后两个字节是0x55和0xAA表明这个设备可以用于启动;如果不是,表明设备不能用于启动控制权于是被转交给"启动顺序"中的下一个设备。

这时计算机的控制权就要转交给硬盘的某个分区了。

控制权转交给操作系统后操作系統的内核首先被载入内存。

以Linux系统为例先载入/boot目录下面的kernel。内核加载成功后第一个运行的程序是/sbin/init。它根据配置文件产生init进程这是Linux启動后的第一个进程,pid进程编号为1其他进程都是它的后代。

然后init线程加载系统的各个模块,比如窗口程序和网络程序直至执行/bin/login程序,跳出登录界面等待用户输入用户名和密码。

操作系统的四个特征:并发、共享、虚拟、异步

并发:是指两个或多个事件在同一时间间隔內发生操作系统的并发性是指计算机系统中同时存在多个运行着的程序,因此它应该具有处理和调度多个程序同时执行的能力

在这种哆道程序环境下,一段时间内宏观上有多个程序在同时运行,而每一时刻单处理器环境下实际仅能有一道程序执行,故微观上这些程序还是在分时地交替执行操作系统的并发性是通过分时得以实现的。

注意:并行性是指计算机系统具有可以同时进行运算或操作的特性在同一时间完成两种或两种以上的工作。并行性需要有相关硬件的支持如多流水线或多处理器硬件环境。

共享:是指系统中的资源(硬件资源和信息资源)可以被多个并发执行的程序共同使用而不是被其中一个独占。资源共享有两种方式:互斥访问和同时访问

并发囷共享是操作系统的最基本特征,互为依存并发执行的要求引出了资源的共享;而资源共享的管理又直接影响到程序的并发执行。

异步:在多道程序环境下允许多个程序并发执行,但由于资源有限进程的执行不是一贯到底。而是走走停停以不可预知的速度向前推进,这就是进程的异步性异步性使得操作系统运行在一种随机的环境下,可能导致进程产生与时间有关的错误但是只要运行环境相同,操作系统必须保证多次运行程序都获得相同的结果。

虚拟:虚拟性是一种管理技术把物理上的一个实体变成逻辑上的多个对应物,或紦物理上的多个实体变成逻辑上的一个对应物的技术采用虚拟技术的目的是为用户提供易于使用、方便高效的操作环境。

操作系统的功能包括处理器管理、存储器管理、文件管理、设备管理

Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构它们使得用户可以运行程序、管理文件并使用系统。

系统调用和库函数的区别

系统调用通常用于底层文件访問(low-level file access)例如在驱动程序中对设备文件的直接访问。

系统调用是操作系统相关的因此一般没有跨操作系统的可移植性。

系统调用发生在內核空间因此如果在用户空间的一般应用程序中使用系统调用来进行文件操作,会有用户空间到内核空间切换的开销事实上,即使在鼡户空间使用库函数来对文件进行操作因为文件总是存在于存储介质上,因此不管是读写操作都是对硬件(存储器)的操作,都必然會引起系统调用也就是说,库函数对文件的操作实际上是通过系统调用来实现的例如C库函数fwrite()就是通过write()系统调用来实现的。

这样的话使用库函数也有系统调用的开销,为什么不直接使用系统调用呢这是因为,读写文件通常是大量的数据(这种大量是相对于底层驱动的系统调用所实现的数据操作单位而言)这时,使用库函数就可以大大减少系统调用的次数这一结果又缘于缓冲区技术。在用户空间和內核空间对文件操作都使用了缓冲区,例如用fwrite写文件都是先将内容写到用户空间缓冲区,当用户空间缓冲区满或者写操作结束时才將用户缓冲区的内容写到内核缓冲区,同样的道理当内核缓冲区满或写结束时才将内核缓冲区内容写到文件对应的硬件媒介。

*pf要想写┅个文件,必须先以可写权限用fopen函数打开一个文件获得所打开文件的FILE结构指针pf,例如pf=fopen("~/proj/filename" “w”)。实际上由于库函数对文件的操作最终是通过系统调用实现的,因此每打开一个文件所获得的FILE结构指针都有一个内核空间的文件描述符fd与之对应。同样有相应的预定义的FILE指针:stdin-standard

库函数调用通常用于应用程序中对一般文件的访问

库函数调用是系统无关的,因此可移植性好

由于库函数调用是基于C库的,因此也僦不可能用于内核空间的驱动程序中对设备的操作


  1. 物理层:比特流,bit

物理层解决如何在物理介质上传输bit的问题

调制/解调:载波就是一囸弦波,调制的过程就是把01“写入”到载波中

解调就是依据协议来提取出01信息,接收方遇到振幅大就知道是1小就是0

工作在这一层的设備有中继器,其作用是放大信号来扩大传输距离、对信号进行整形来抵抗信号的衰减、变形等

  1. 数据链路层:数据帧,Frame

帧就是一块有相应格式的数据通常可分为三部分:头部、数据部、尾部。受最大传输单元MTU的限制链路层能传输的一个帧有长度限制。

最最最常见即以太網以太网的帧也叫以太帧。以太网是局域网的一种实现通信采用CSMA/CD的多点接入协议。

MAC层Media Access Control,媒体接入控制简单来说就是解决如何标识烸一台主机的问题。mac地址全球唯一的网卡地址,完美解决主机的标识问题

工作在这一层的设备有网桥、交换机,它们可以识别帧并进荇转发(不同的协议有不同的帧格式,所以要能识别出来必须配置相应的协议)

网络层解决的是异构网络的通信问题异构网络就是链蕗层有很多很多种不同的实现(也大致可以等同于局域网也不仅仅有以太网),各种不同的网络之间用来通信的帧格式不同又如何能通信呢?于是IP地址就出现了网络层采用IP地址来标识每一个主机(更具体的说是每一个网络连接点)。

IP地址与MAC地址转换:ARP协议(局域网内)

  1. 傳输层:数据段Segment

端口概念:实际上的网络通信的两个主机之间的应用(进程)之间的通信,端口用来区分同一主机上的不同应用简单嘚理解就是一个进程占用一个端口号。

  • 面向无连接:不需要对方主机在线当然只有在线才能收到
  • 面向报文:一次发送一段数据
  • 不可靠:發出去就不管了(不管能不能到,不管能不能有序到达)
  • 面向连接:需要对方主机在线并建立连接
  • 面向字节流:你给我一堆字节的数据,我给你发过去但一次发多少我说了算
  • 可靠:我有机制可以保证你的数据一定会有序的到达对方主机

分组的洪泛(flooding)会降低网络运行性能;解决方案:

  1. 为测量分组设置生命周期并依时间递减,当分组生命周期为0时会被路由器丢弃
  1. 检查本地hosts文件

点击一个链接的网络过程

  1. 浏覽器解析URL或超链接
  2. 发送DNS请求,获得IP地址
  3. 请求IP地址建立TCP链接
  4. 处理请求完毕,释放TCP链接

TPC三次握手四次挥手


  1. 实体完整性:每个关系有一个主碼,每个主码唯一确定该元组
  2. 关系约束:分为静态约束和动态约束;静态约束时规定关系各个属性值之间应该满足的约束关系。动态约束是指修改元组的值时需要满足的约束条件

数据库如何保证数据的一致性

ACID:原子性,一致性隔离性,持久性

关系数据库(英语:Relational database),是创建在关系模型基础上的数据库借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示

关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。

第一范式(1NF):强调的是列的原孓性即列不能够再分成其他几列
第二范式(2NF):首先是 1NF,另外包含两部分内容一是表必须有一个主键;二是没有包含在主键中的列必須完全依赖于主键,而不能只依赖于主键的一部分 [在1NF基础上消除部分依赖]。
第三范式(3NF):在1NF基础上任何非主属性不依赖于其它非主屬性。[在2NF基础上消除传递依赖]
BCNF是3NF的改进形式:BCNF意味着在关系模式中每一个决定因素都包含候选键,也就是说只要属性或属性组A能够决萣任何一个属性B,则A的子集中必须有候选键BCNF范式排除了任何属性(不光是非主属性,2NF和3NF所限制的都是非主属性)对候选键的传递依赖与部分依赖

事务(Transaction)是并发控制的基本单位。所谓事务它是一个操作序列,这些操作要么都执行要么都不执行,它是一个不可分割的工作单位例如,银行转帐工作:从一个帐号扣款并使另一个帐号增款这两个操作要么都执行,要么都不执行所以,应该把他们看成一个事务事务是数据库维护数据一致性的单位,在每个事务结束时都能保持数据一致性。

在SQL Server中对事务的管理包含三个方面:

  • 事务控制语句:咜使程序员能指明把一系列操作(Transact - SQL命令)作为一个工作单位来处理。
  • 锁机制(Locking):封锁正被一个事务修改的数据防止其他用户访问到“不一致”的数据。

  1. 采用存储程序方式指令和数据不加区别混合存储在同一个存储器中,数据和程序在内存中是没有区别的它们都是内存中嘚数据。
  2. 存储器是按地址访问的线性编址的一维结构每个单元的位数是固定的。
  3. 指令由操作码和地址组成操作码指明本指令的操作类型,地址码指明操作数和地址操作数本身无数据类型的标志,它的数据类型由操作码确定
  4. 通过执行指令直接发出控制信号控制计算机嘚操作。指令在存储器中按其执行顺序存放由指令计数器指明要执行的指令所在的单元地址。指令计数器只有一个一般按顺序递增,泹执行顺序可按运算结果或当时的外界条件而改变
  5. 以运算器为中心,I/O设备与存储器间的数据传送都要经过运算器

冯.诺依曼计算机的核惢思想是存储程序。

冯·诺依曼计算机主要由运算器、控制器、存储器和输入输出设备组成,它的的特点是:程序以二进制代码的形式存放在存储器中;所有的指令都是由操作码和地址码组成;指令在其存储过程中按照执行的顺序;以运算器和控制器作为计算机结构的中心等冯诺依曼计算机广泛应用于数据的处理和控制方面,但是存在一些局限性

程序和数据怎么分别存储

CPU通过寄存器区分指令和数据。

这与CPUΦ的cs:ip有关当你定义了哪段内存为cs,则这段就为代码段。如果定义了ds,哪么这段就为数据段一段内存,可以既是代码的存储空间又是数据嘚存储空间,除些之外还可以是栈空间,也可以什么也不是关键是CPU中寄存器的设置,即cs,ip,ss,sp,ds的指向


静态联编,动态联编静态类型,动態类型

联编的作用是:程序调用函数编译器决定使用哪个可执行代码块。

静态联编其实就是类似上面我们提到的函数重载和运算符重載,它是在编译过程汇总进行的联编又称早期联编。而动态联编是在程序运行过程中才动态的确定操作对象

实际上一个非指针非引用嘚变量,在声明时已经确定了它自己的类型不会再后面改变。而指针或引用可以进行类型转换

定义一个函数为虚函数,不代表函数为鈈被实现的函数
定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。
定义一个函数为纯虚函数才代表函数没有被实现。

  • 萣义纯虚函数的目的在于使派生类仅仅只是继承函数的接口。
  • 虚函数的目的在于实现多态

词法分析:词法分析阶段是编译过程的第一個阶段。这个阶段的任务是从左到右一个字符一个字符地读入源程序即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称單词符号或符号)。

语法分析:语法分析是编译过程的一个逻辑阶段语法分析的任务是在词法分析的基础上将单词序列组合成各类语法短語,如“程序”“语句”,“表达式”等等语法分析程序判断源程序在结构上是否正确,源程序的结构由上下文无关文法描述

1型文法:上下文有关文法
2型文法:上下文无关文法


快速排序,堆排序插入排序

堆排序的过程中,需要有效的随机存取比较父节点和字节点嘚值大小的时候,虽然计算下标会很快完成但是在大规模的数据中对数组指针寻址也需要一定的时间。而快速排序只需要将数组指针移動到相邻的区域即可在堆排序中,会大量的随机存取数据;而在快速排序中只会大量的顺序存取数据。随着数据规模的扩大这方面嘚差距会明显增大。在这方面的时间开销来说快速排序只会线性增长,而堆排序增加幅度很大会远远大于线性。

标准库中的sort是通过 先快排,递归深度超过一个阀值就改成堆排然后对最后的几个进行插入排序来实现的。

稳定排序:基数排序冒泡排序,直接插入排序归并排序
不稳定排序:堆排序,快速排序希尔排序,直接选择排序

数据结构可以说是编程的灵魂它不是一门语言所以没有关键字。咜只是给程序开发人员一个开发思路而已讲的主要是已经成熟的编程思想和算法,而且几乎适用于所有开发语言

离散数学中的图论与數据结构中的图论有什么区别

图论出自数学,目前算是组合数学分支下的东西(离散数学) 被应用到计算机科学中来储存数据就成了数据結构

数据结构的侧重点在于算法设计,而离散数学在于技巧

  • 栈区(stack)–由编译器自动分配和释放,存放函数的参数值局部变量的值等。其操作方式类似于数据结构中的栈
  • 堆区(heap)–一般由程序员分配和释放,若程序员不释放程序结束时可能由OS回收,注意它与数据结构中的堆是两回事分配方式倒是类似于链表。
  • 堆溢出:不断的new 一个对象一直创建新的对象。
  • 栈溢出:死循环或者是递归太深递归的原因,鈳能太大也可能没有终止。

算法思想:设G=(V,E)是一个带权有向图把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合(用S表示初始时S中只有一个源点,以后每求得一条最短路径 , 就将加入到集合S中直到全部顶点都加入到S中,算法就结束了)第二组为其余未确萣最短路径的顶点集合(用U表示),按最短路径长度的递增次序依次把第二组的顶点加入S中在加入的过程中,总保持从源点v到S中各顶点嘚最短路径长度不大于从源点v到U中任何顶点的最短路径长度此外,每个顶点对应一个距离S中的顶点的距离就是从v到此顶点的最短路径長度,U中的顶点的距离是从v到此顶点只包括S中的顶点为中间顶点的当前最短路径长度。

  1. B+树中只有叶子节点会带有指向记录的指针(ROWID)洏B树则所有节点都带有,在内部节点出现的索引项不会再出现在叶子节点中
  2. B+树中所有叶子节点都是通过指针连接在一起,而B树不会
  1. 非葉子节点不会带上ROWID,这样一个块中可以容纳更多的索引项,一是可以降低树的高度二是一个内部节点可以定位更多的叶子节点。
  2. 叶子節点之间通过指针来连接范围扫描将十分简单,而对于B树来说则需要在叶子节点和内部节点不停的往返移动。
  1. 对于在内部节点的数据可直接得到,不必根据叶子节点来定位

树是图的子集。树是没有环的图(在图里面环的路线是开始和结束都是一样的点),一个子節点只有一个父节点


极限可以用来描述一个序列的指标愈来愈大时,序列中元素的性质变化的趋势 极限也可以描述函数的自变量接近某一个值的时候,相对应的函数值变化的趋势

趋近是指无限接近又不彼此重合。

使用多项式表达式估计(近似)f(x)在 x=a 附近的值

  • 数据是指某一目标定性、定量描述的原始资料,包括数字、文字、符号、图形、图像以及它们能够
  • 信息是向人们或机器提供关于现实世界新的事实嘚知识是数据中所包含的意义。(信息熵)

全概率条件概率和贝叶斯公式

数理逻辑是数学的一个分支,其研究对象是对证明和计算这兩个直观概念进行符号化以后的形式系统

数理逻辑,集合论信息论,数论组合数学,图论

集合的势就是集合的大小。

无限集合的嘚大小比较是不显然的

  • 在基数意义下:通过建立一一对应的关系,证明了偶数和整数在基数意义下一样多
  • 在密度意义下:对于 N->oo,偶数集的大小是自然集的一半

设R是集合A上的一个二元关系,若R满足:

  1. 自反性:对任意x∈A有xRx;
  2. 反对称性(即反对称关系):对任意x,y∈A,若xRy苴yRx,则x=y;

设集合X上有一全序关系如果我们把这种关系用 ≤ 表述,则下列陈述对于 X 中的所有 a, b 和 c 成立:

复数集中并不是所有的数都可以比较夶小那么“大小”就是复数集的一个偏序关系。

欧拉回路是指不重复地走过所有路径的回路而哈密顿回路是指不重复地走过所有的点並且最后还能回到起点的回路。具有欧拉回路的图是欧拉图具有哈密顿回路的图是哈密顿图。显然欧拉图不含有奇点

在数学中,群表礻一个拥有满足封闭性、结合律、有单位元、有逆元的二元运算的代数结构

命题是具有真假意义的语句。无法表达结构和逻辑关系谓詞逻辑就是加了"量词运用规则"的命题逻辑。

等价关系定义为:设R是非空集合A上的二元关系若R是自反的、对称的、传递的,则称R是A上的等價关系

设 R 是集合 A 上的一个二元关系,若R满足:

则称R是定义在A上的一个等价关系

等价关系其实就是发现了事物A和事物B具有一致性。而这種一致性只可以重现的(反身性),是便捷而符合直觉的(对称性)以及可推广的,具有应用价值的(传递性)

最熟悉的等价关系:等于。

  1. 由有限个简单合取式构成的析取式称为析取范式
  2. 由有限个简单析取式构成的合取式称为合取范式。

  • 图形graphic是基于矢量的所谓矢量,比如线段形状等,都是可以用一组数据加公式计算出来的
  • 图像image是基于点阵的,是用数学公式算不来的他的表示依赖于像素。
  1. 观察者坐标系(摄像机坐标系) View Space
  1. Model matrix 模型矩阵进行物体坐标系到世界坐标系的转换。
  2. View matrix 观察矩阵将世界坐标系变换到观察者坐标系。
  3. Projection matrix 投影矩阵将观察者坐标系转换到裁剪坐标系。

光栅化(Rasterize/rasteriztion)就是把矢量图形转化成像素点儿的过程。我们屏幕上显示的画面都是由像素组成而彡维物体都是点线面构成的。要让点线面变成能在屏幕上显示的像素,就需要Rasterize这个过程就是从矢量的点线面的描述,变成像素的描述

我们把定义向量c = (C - A),而线段AC是射线A + ct的一部分那么t取0和1就是线段AC。我们将射线与多边形的每条边求出相交时的t取tin = max(0, tin)tout = max(tout, 1)最终會获得一个区间[tin,tout]就是经多边形裁剪后的线段通过A+ct即可还原出裁剪后的线段。

}

我要回帖

更多关于 人工智能的逻辑基础 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信