搜档网
当前位置:搜档网 › velocity配置文件详解

velocity配置文件详解

velocity配置文件详解
velocity配置文件详解

Velocity配置文件详解

在velocity的发布方包中有一个velocity.properties

(位于 org.apache.velocity.runtime.defaults package下,文件定义了velocity的配置信息org.apache.velocity.runtime.RuntimeConstants中定义了key值)

#模板编码:

input.encoding=ISO-8859-1//模板输入编码

output.encoding=ISO-8859-1 //模板输出编码

#foreach配置

https://www.sodocs.net/doc/b34738543.html,= velocityCount //计数器名称

directive.foreach.counter.initial.value = 1 //计数器初始值

directive.foreach.maxloops = -1 //最大循环次数,-1为默认不限制

https://www.sodocs.net/doc/b34738543.html, = velocityHasNex //迭代器名称

#set配置

directive.set.null.allowed = false //是否可设置空值

#include配置

directive.include.output.errormsg.start= //错误信息提示结束字符串

#parse配置

directive.parse.max.depth = 10 //解析深度

#模板加载器配置

resource.loader = file //模板加载器类型,默认为文件,可定义多个

file.resource.loader.description= Velocity File Resource Loader //加载器描述file.resource.loader.class

=Velocity.Runtime.Resource.Loader.FileResourceLoader //加载器类名称

file.resource.loader.path = . //模板路径

file.resource.loader.cache = false //是否启用模板缓存

file.resource.loader.modificationCheckInterval = 2 //检查模板更改时间间隔宏配置

velocimacro.library//指定宏定义文件的位置

velocimacro.permissions.allow.inline= true //是否可以行内定义

velocimacro.permissions.allow.inline.to.replace.global = false //是否可以用行内定义代替全局定义

velocimacro.permissions.allow.inline.local.scope = false //行内定义是否只用于局部

velocimacro.context.localscope= false //宏上下文是否只用于局部

velocimacro.max.depth = 20 //解析深度

velocimacro.arguments.strict= false //宏参数是否启用严格模式

#资源管理器配置

resource.manager.class= Velocity.Runtime.Resource.ResourceManagerImpl //管理器类名称

resource.manager.cache.class = Velocity.Runtime.Resource.ResourceCacheImpl //缓存器类名称

#解析器池配置

parser.pool.class= Velocity.Runtime.ParserPoolImpl //解析池类名称

parser.pool.size = 40 //初始大小

#evaluate配置

directive.evaluate.context.class= Velocity.VelocityContext //上下问类名称#可插入introspector配置

runtime.introspector.uberspect = Velocity.Util.Introspection.UberspectImpl //默认introspector类名称

#日志配置

runtime.log = velocity.log

用以指定 Velocity 运行时日志文件的路劲和日志文件名,如不是全限定的绝对路径,系统会认为想对于当前目录.

runtime.log.logsystem

这个参数没有默认值,它可指定一个实现了

org.apache.velocity.runtime.log.LogSystem.接口的自定义日志处理对象给

Velocity。这就方便将 Velocity 与你己有系统的日志机制统一起来

runtime.log.logsystem.class= org.apache.velocity.runtime.log.AvalonLogSystem

上面这行,是一个示例来指定一个日志记录器.

runtime.log.error.stacktrace= false

runtime.log.warn.stacktrace= false

https://www.sodocs.net/doc/b34738543.html,.stacktrace= false

这些是错误消息跟踪的开关.将会生成大量、详细的日志内容输出.

runtime.log.invalid.references= true

当一个引用无效时,打开日志输出. 在生产系统运行中,这很有效,也是很有用的调试工具.

一、jar包

现在越来越多的项目开始使用Velocity作为view,velocity的一些jar包如下:

1、velocity-1.5.jar 包含了veloctiy运行时需要的类

2、velocity-tools-1.4.jar 包含了velocity的视图控制和系统工具类

3、velocity-dvsl-1.0.jar 可选的,封转了dvsl的类

4、commons-collections-xxx.jar 扩展了java.util.map的一些集合类

5、commons-logging-xxx.jar 日志输出类

6、commons-lang-xxx.jar 扩展了https://www.sodocs.net/doc/b34738543.html,ng的类

7、commons-digester-xxx.jar 用于处理xml转换到对象的工具类

8、commons-beanutils-xxx.jar 对bean操作的一些类

一、web.xml中的配置

1

2

3velocity

4org.apache.velocity.tools.view.VelocityViewServlet

5

6

7velocity

8*.vm

9

10

11index.vm

12

13

二、可选配置tools.xml

this is foo

this is bar.

struts2 与velocity1.6及velocity tools1.4的整合

2010-03-10 09:46

搜索velocity,资料真是不多,网上很多strust2和velocity的配置是不正确的!搭个环境都费了好久时间,在此记录备忘

开始前加入必要jar,我这里加的有:commons-logging-1.0.4.jar,freemarker-2.3.15.jar,

ognl-2.7.3.jar,xwork-core-2.1.6.jar,struts2-core-2.1.8.1.jar,

commons-fileupload-1.2.1.jar,commons-collections-3.2.jar,commons-lang-2.3.jar,commons-digester-2.0.jar,commons-beanutils-1.7.0.jar,velocity-tools-1.4.jar,

velocity-1.6.3.jar。

首先,web.xml文件,直接从下载的struts2压缩包中的blank项目中复制即可,无需其他多余配置

其次,struts.xml文件,先也从struts2的blank项目中复制一份,放到src目录下

再次,在WEB-INF下新建两个文件,velocity的配置velocity.properties和velocity tools的toolbox.xml(这两个文件的文件名随意)

第四,WEN-INF中新建一个VM_global_library.vm文件,内容为空

第五,在struts配置文件中加入下面两行,注意value的文件路径,就是第三步中新建的

加入后:

hello.vm

第六,编码问题,统一编码,将所有文件的编码都给为同一种,如utf-8,同时在.vm文件中加上

,还要更改服务器的配置(如tomcat,打开tomcat conf目录下server.xml,找到你使用的Connector,不知道用哪个就改所有的Connector,在这个标签的最后加上URIEncoding="UTF-8"(要跟前面一致))这样基本可以解决乱码问题

强制类型转换及指针本质

强制类型转换类型的本质指针的本质函数指针 昨天给朋友讲了 3个问题, A〉什么是函数指针,本质是?指针的本质? B〉什么是类型,类型的本质是? C〉什么是强制类型转换,本质是? 作者张世光亿通科技软件部 060913 QQ:87895224 MSN:Z_55@https://www.sodocs.net/doc/b34738543.html, A〉什么是函数指针,本质是?指针的本质? 如 void fun(); //函数声明 void (*ptrfun)();//函数指针变量ptrfun 的声明,表明ptrfun这个指针指向一个 void fun()函数类型的函数地址。 〉函数的名字代表函数的地址; 所以,可以这样 ptrfun =fun ;//给ptrfun赋值。此时,ptrfun 就是 fun 函数的别名; 在需要调用 fun()的地方,可以这样写 (*ptrfun)(); //等同于 fun(); //这就是别名的意义。 指针的本质是一个固定长度(32位系统上是4个byte)的空间中放置的内容是一个内存地址。 而指针类型的本质就是对这个地址的解释方式。不同的指针类型,对即使相同的内存地址的解释是不同的,受影响的空间大小也不同。受影响的空间的大小等于sizeof(类型)。 如 short i=0x1234; short * psort = &i; char *pchar = &i; //此时 pshort ==pchar;即指向了同一个地址; 那么 (*pshort) 和 (*pchar) 的值各是什么? 假设 sizeof(short)==2 sizeof(char)==1 假如内存中这样: ---地址 0x1000-- | 0x34 | ---------------- | 0x12 | ---------------- 那么,psort==0x1000 ,同时,pchar==0x1000 ; 那么,(*psort) 代表是地址0x1000 和 0x1001 这两个字节的内容; <-----由其类型决定 (*pchar)代表地址0x1000 这一个字节的内容; <<-----由其类型决定

VRay中文使用手册

VRay中文使用手册 9030 目录 1. license 协议 2. VRay的特征 3. VRay软件的安装 4. VRay的渲染参数 5. VRay 灯光 6. VRay 材质 7. VRay 贴图 8. VRay 阴影 9. VRay的分布式渲染 10. Terminology术语 11. Frequently Asked Questions常见问题 VRay的特征 VRay光影追踪渲染器有Basic Package 和 Advanced Package两种包装形式。Basic Package具有适当的功能和较低的价格,适合学生和业余艺术家使用。Advanced Package 包含有几种特殊功能,适用于专业人员使用。 Basic Package的软件包提供的功能特点

·真正的光影追踪反射和折射。(See: VRayMap) ·平滑的反射和折射。(See: VRayMap) ·半透明材质用于创建石蜡、大理石、磨砂玻璃。(See: VRayMap) ·面阴影(柔和阴影)。包括方体和球体发射器。(See: VRayShadow) ·间接照明系统(全局照明系统)。可采取直接光照 (brute force), 和光照贴图方式(HDRi)。(See: Indirect illumination) ·运动模糊。包括类似Monte Carlo 采样方法。(See: Motion blur) ·摄像机景深效果。(See: DOF) ·抗锯齿功能。包括 fixed, simple 2-level 和 adaptive approaches等采样方法。(See: Image sampler) ·散焦功能。(See: Caustics ) ·G-缓冲(RGBA, material/object ID, Z-buffer, velocity etc.) (See: G-Buffer ) Advanced Package软件包提供的功能特点 除包含所有基本功能外,还包括下列功能: ·基于G-缓冲的抗锯齿功能。(See: Image sampler) ·可重复使用光照贴图 (save and load support)。对于fly-through 动画可增加采样。(See: Indirect illumination) ·可重复使用光子贴图 (save and load support)。(See: Caustics) ·带有分析采样的运动模糊。(See: Motion blur ) ·真正支持 HDRI贴图。包含 *.hdr, *.rad 图片装载器,可处理立方体贴图和角贴图贴图坐标。可直接贴图而不会产生变形或切片。

常用数据类型转换使用详解

VC常用数据类型使用转换详解 CString ,BSTR ,LPCTSTR之间关系和区别 CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵,LPCTSTR只是一个常量的TCHAR指针。 CString 是一个完全独立的类,动态的TCHAR数组,封装了 + 等操作符和字符串操作方法。typedef OLECHAR FAR* BSTR; typedef const char * LPCTSTR; vc++中各种字符串的表示法 首先char* 是指向ANSI字符数组的指针,其中每个字符占据8位(有效数据是除掉最高位的其他7位),这里保持了与传统的C,C++的兼容。 LP的含义是长指针(long pointer)。LPSTR是一个指向以‘/0’结尾的ANSI字符数组的指针,与char*可以互换使用,在win32中较多地使用LPSTR。 而LPCSTR中增加的‘C’的含义是“CONSTANT”(常量),表明这种数据类型的实例不能被使用它的API函数改变,除此之外,它与LPSTR是等同的。 1.LP表示长指针,在win16下有长指针(LP)和短指针(P)的区别,而在win32下是没有区别的,都是32位.所以这里的LP和P是等价的. 2.C表示const 3.T是什么东西呢,我们知道TCHAR在采用Unicode方式编译时是wchar_t,在普通时编译成char. 为了满足程序代码国际化的需要,业界推出了Unicode标准,它提供了一种简单和一致的表达字符串的方法,所有字符中的字节都是16位的值,其数量也可以满足差不多世界上所有书面语言字符的编码需求,开发程序时使用Unicode(类型为wchar_t)是一种被鼓励的做法。 LPWSTR与LPCWSTR由此产生,它们的含义类似于LPSTR与LPCSTR,只是字符数据是16位的wchar_t而不是char。 然后为了实现两种编码的通用,提出了TCHAR的定义: 如果定义_UNICODE,声明如下: typedef wchar_t TCHAR; 如果没有定义_UNICODE,则声明如下: typedef char TCHAR; LPTSTR和LPCTSTR中的含义就是每个字符是这样的TCHAR。 CString类中的字符就是被声明为TCHAR类型的,它提供了一个封装好的类供用户方便地使用。

C++强制类型转换

关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++ 的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。下面对它们一一进行介绍。 static_cast 用法:static_cast < type-id > ( expression ) 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法: ?用于类层次结构中基类和子类之间指针或引用的转换。进行上行转换(把子类的指针或引用转换成基类表示)是安全的;进行下行转换(把基类指针或引用转换成子类表示)时,由于没有动态类型检查,所以是不安全的。 ?用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换的安全性也要开发人员来保证。 ?把空指针转换成目标类型的空指针。 ?把任何类型的表达式转换成void类型。 注意:static_cast不能转换掉expression的const、volitale、或者__unaligned属性。 dynamic_cast 用法:dynamic_cast < type-id > ( expression ) 该运算符把expression转换成type-id类型的对象。Type-id必须是类的指针、类的引用或者void *;如果type-id是类指针类型,那么expression也必须是一个指针,如果ty pe-id是一个引用,那么expression也必须是一个引用。 dynamic_cast主要用于类层次间的上行转换和下行转换,还可以用于类之间的交叉转换。

VB数据类型转换函数

(一)类型转换类函数 1. CType(X) [格式]: P=CBool(X) ' 将X转换为"布尔"(Boolean)类型 P=CByte(X) ' 将X转换为"字节"(Byte)类型 P=CCur(X) ' 将X转换为"金额"(Currency)类型 P=CDate(X) ' 将X转换为"日期"(Date)类型 P=CDbl(X) ' 将X转换为"双精度"(Double)类型 P=CInt(X) ' 将X转换为"整型"(Integer)类型 P=CLng(X) ' 将X转换为"长整型"(Long)类型 P=CSng(X) ' 将X转换为"单精度"(Single)类型 P=CStr(X) ' 将X转换为"字符串"(String)类型 P=Cvar(X) ' 将X转换为"变体型"(Variant)类型 P=CVErr(X) ' 将X转换为Error值 [ 范例]: (1). CStr(13)+CStr(23) ' 数值转换成字符串后,用"+"号连接,结果:1323 (2). CInt("12")+12 ' 字符串转换成整型后与12相加,结果:24 (3). P=CInt(True) ' 输出结果为-1 ' 布尔值与数值的转换时要注意,布尔值只有True和False,其中True在内存中为-1,False 存为0 (4). CBool(-0.001) ' 输出结果为True ' 将数值转换为布尔型时,等于0的数值将得到False,不等于0的数值得到True. 2. Int(X),Fix(X):取X的整数值 [格式]: P=Int(X) ' 取<=X的最大整数值 P=Fix(X) ' 取X的整数部分,直接去掉小数

全国计算机等级考试二级C语言真题题库3+2015年9月

全国计算机等级考试二级C语言真题题库3 2015年9月 (总分:43.00,做题时间:120分钟) 一、选择题(每小题1分,共40分)(总题数:40,分数:40.00) 1.下列叙述中正确的是()。 (分数:1.00) A.程序可以作为算法的一种表达方式√ B.算法的有穷性是指算法的规模不能太大 C.算法的复杂度用于衡量算法的控制结构 D.算法的效率与数据的存储结构无关 解析:[解析]算法的有穷性是指操作步骤有限且能在有限时间内完成,如果一个算法执行耗费的时间太长,即使最终得出了正确结果,也是没有意义的,故B选项错误。一个算法复杂度的高低体现在运行该算法所需要的计算机资源的多少,故C选项错误。算法的效率是指算法执行的时间,算法执行时间需通过依据该算法编制的程序在计算机上运行时所消耗的时间来度量,这就与算法本身设计的优劣以及具体的编程实现有关,数据的存储结构会极大的影响程序的执行时间,故D选项错误。算法在实现时需要用具体的程序设计语言来实现,所以程序可以作为实现算法的一种表达方式。故选A选项。 2.某循环队列的存储空间为Q(1:m),初始状态为front=rear=m。现经过一系列的入队操作和退队操作后,front=m-1,rear=m,则该循环队列中的元素个数为()。 (分数:1.00) A.m-1 B.1 √ C.m D.0 解析:[解析]循环队列长度为m,由初始状态为front=rear=m可知此时循环队列为空。入队运算时,首先队尾指针(rear)进1(即rear+1),然后在rear指针指向的位置插入新元素。特别的,当队尾指针rear =m+1时,置rear=1。迟队运算时,排头指针(front)进1(即front+1),然后删除front指针指向的位置上的元素,当排头指针front=m+1时,置front=1。从排头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素,则该循环队列中的元素个数为m-(m-1)=1。故选择B 选项。 3.能从任意一个节点开始没有重复地扫描到所有节点的数据结构是()。 (分数:1.00) A.循环链表√ B.双向链表 C.二叉链表 D.有序链表 解析:[解析]在单链表的第一个节点前增加一个表头节点,队头指针指向表头节点,最后一个节点的指针域的值由NULL改为指向表头节点,这样的链表称为循环链表。在循环链表中,只要指出表中任何一个节点的位置,就可以从它出发没有重复地扫描到表中其他所有的节点。双向链表与二叉链表都可以扫描到所有节点,但是会有重复。有序链表如果是单链表的情况下,不能扫描到所有节点。故A选项正确。 4.某棵树中共有25个节点,且只有度为3的节点和叶子节点,其中叶子节点有7个,则该树中度为3的节点数为()。 (分数:1.00) A.不存在这样的树√ B.7 C.8 D.6 解析:[解析]树是一种简单的非线性结构,直观地来看,树是以分支关系定义的层次结构。在树结构中,一个节点所拥有的后件个数称为该节点的度,所有节点中最大的度称为树的度。首先假设这样的树是存在

LAMMPS手册-中文版讲解

L A M M P S手册-中文版 讲解 https://www.sodocs.net/doc/b34738543.html,work Information Technology Company.2020YEAR

LAMMPS手册-中文解析 一、简介 本部分大至介绍了LAMMPS的一些功能和缺陷。 1.什么是LAMMPS? 2. LAMMPS是一个经典的分子动力学代码,他可以模拟液体中的粒子,固体和汽体的系综。他可以采用不同的力场和边界条件来模拟全原子,聚合物,生物,金属,粒状和粗料化体系。LAMMPS可以计算的体系小至几个粒子,大到上百万甚至是上亿个粒子。 LAMMPS可以在单个处理器的台式机和笔记本本上运行且有较高的计算效率,但是它是专门为并行计算机设计的。他可以在任何一个按装了C++编译器和MPI的平台上运算,这其中当然包括分布式和共享式并行机和Beowulf型的集群机。 LAMMPS是一可以修改和扩展的计算程序,比如,可以加上一些新的力场,原子模型,边界条件和诊断功能等。 通常意义上来讲,LAMMPS是根据不同的边界条件和初始条件对通过短程和长程力相互作用的分子,原子和宏观粒子集合对它们的牛顿运动方程进行积分。高效率计算的LAMMPS通过采用相邻清单来跟踪他们邻近的粒子。这些清单是根据粒子间的短程互拆力的大小进行优化过的,目的是防止局部粒子密度过高。在并行机上,LAMMPS采用的是空间分解技术来分配模拟的区域,把整个模拟空间分成较小的三维小空间,其中每一个小空间可以分配在一个处理器上。各个处理器之间相互通信并且存储每一个小空间边界上的”ghost”原子的信息。LAMMPS(并行情况)在模拟3维矩行盒子并且具有近均一密度的体系时效率最高。 3.L AMMPS的功能 总体功能: 可以串行和并行计算 分布式MPI策略 模拟空间的分解并行机制 开源 高移植性C++语言编写 MPI和单处理器串行FFT的可选性(自定义) 可以方便的为之扩展上新特征和功能 只需一个输入脚本就可运行 有定义和使用变量和方程完备语法规则 在运行过程中循环的控制都有严格的规则

LAMMPS手册中文讲解

LAMMPS手册-中文解析 一、简介 本部分大至介绍了LAMMPS的一些功能和缺陷。 1.什么是LAMMPS? LAMMPS是一个经典的分子动力学代码,他可以模拟液体中的粒子,固体和汽体的系综。他可以采用不同的力场和边界条件来模拟全原子,聚合物,生物,金属,粒状和粗料化体系。LAMMPS可以计算的体系小至几个粒子,大到上百万甚至是上亿个粒子。 LAMMPS可以在单个处理器的台式机和笔记本本上运行且有较高的计算效率,但是它是专门为并行计算机设计的。他可以在任何一个按装了C++编译器和MPI的平台上运算,这其中当然包括分布式和共享式并行机和Beowulf型的集群机。 LAMMPS是一可以修改和扩展的计算程序,比如,可以加上一些新的力场,原子模型,边界条件和诊断功能等。 通常意义上来讲,LAMMPS是根据不同的边界条件和初始条件对通过短程和长程力相互作用的分子,原子和宏观粒子集合对它们的牛顿运动方程进行积分。高效率计算的LAMMPS通过采用相邻清单来跟踪他们邻近的粒子。这些清单是根据粒子间的短程互拆力的大小进行优化过的,目的是防止局部粒子密度过高。在并行机上,LAMMPS采用的是空间分解技术来分配模拟的区域,把整个模拟空间分成较小的三维小空间,其中每一个小空间可以分配在一个处理器上。各个处理器之间相互通信并且存储每一个小空间边界上的”ghost”原子的信息。LAMMPS(并行情况)在模拟3维矩行盒子并且具有近均一密度的体系时效率最高。 2.LAMMPS的功能 总体功能:

可以串行和并行计算 分布式MPI策略 模拟空间的分解并行机制 开源 高移植性C++语言编写 MPI和单处理器串行FFT的可选性(自定义) 可以方便的为之扩展上新特征和功能 只需一个输入脚本就可运行 有定义和使用变量和方程完备语法规则 在运行过程中循环的控制都有严格的规则 只要一个输入脚本试就可以同时实现一个或多个模拟任务粒子和模拟的类型: (atom style命令) 原子 粗粒化粒子 全原子聚合物,有机分子,蛋白质,DNA 联合原子聚合物或有机分子 金属 粒子材料 粗粒化介观模型 延伸球形与椭圆形粒子 点偶极粒子

常用转换函数汇总

1.计算CRC码(CRC16) 输入一个char数组以及数组的长度。数组长度包含CRC码。数组类似于“01 02 FA 03 A4…00 00”的格式,返回计算出的CRC码值,并存储到最后两位。次低位存储高字节,最低位存储低字节。 unsigned char* CMyCnComm::CalCRC(char buf[], int cnt) { unsigned char CRCHi=0x00,CRCLo=0x00,CRCGXHi=0x10,CRCGXLo=0x21; unsigned char ch; int j = 0; while( j < cnt-2) { ch = buf[j]; unsigned char BD; unsigned short i; bool sCF,lCF,hCF; BD=ch; sCF=false; lCF=false; hCF=false; for(i=0;i<8;i++) { if((BD&0x80)==0x80)sCF=true; if((CRCHi&0x80)==0x80)hCF=true; if((CRCLo&0x80)==0x80)lCF=true; CRCLo=CRCLo<<1; CRCHi=CRCHi<<1; if(lCF)CRCHi=CRCHi|0x01; if(sCF!=hCF) { CRCHi=CRCHi^CRCGXHi; CRCLo=CRCLo^CRCGXLo; } BD=BD<<1; sCF=false; lCF=false; hCF=false; } j++; } unsigned char *crcResult = new unsigned char[2]; crcResult[0] = CRCHi; crcResult[1] = CRCLo return crcResult; }

GOCAD中文手册

GOCAD综合地质与储层建模软件 简易操作手册 美国PST油藏技术公司 PetroSolution Tech,Inc.

目录 第一节 GOCAD综合地质与储层建模软件简介┉┉┉┉┉┉┉┉┉┉┉┉┉┉1 一、GOCAD特点┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉1 二、GOCAD主要模块┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉1 第二节 GOCAD安装、启动操作┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉2 一、GOCAD的安装┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉2 二、GOCAD的启动┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉3 第三节 GOCAD数据加载┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉5 一、井数据加载┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉5 二、层数据加载┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉11 三、断层数据加载┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉11 四、层面、断层面加载┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉12 五、地震数据加载┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉12 第四节 GOCAD构造建模┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉13 一、准备工作┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉13 二、构造建模操作流程┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉14 三、构造建模流程总结┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉40 第五节建立GOCAD三维地质模型网格┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉41 一、新建三维地质模型网格流程┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉41 二、三维地质模型网格流程┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉41 三、三维地质模型网格流程总结┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉47 第六节 GOCAD储层属性建模┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉48 一、建立属性建模新流程┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉48 二、属性建模操作流程┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉48 三、属性建模后期处理┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉66 四、网格粗化┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉74 第七节 GOCAD地质解释和分析┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉78

指针强制转换

1、指针类型转换请使用static_cast、dynamic_cast等操作 2、指针变量(不管那种指针),大小都是四个字节,内容就是指向的对象的首地址。不同类型指针不同点就是对首地址之后的那块内存会做不同解释。 建议你看看《Inside C++ Object Model》里面关于指针的内容,里面有清晰的说明 int * pi = new int; pi 指向了一块内存的首地址,这块内存应该有sizeof(int)个字节, 由于pi是int *类型,所以通过pi进行的操作,编译器都认为pi的内容是一个有sizeof(int)个字节的int 型变量的首地址,所以*pi = 4,遇到这样的操作,编译器产生的代码就是把4这个数付到pi所指的四个字节里。 char * pc = (char *)pc; //建议这样写char * pc = static_cast (pc); *pc = '4 '; 由于pc是char *类型,所以通过pc进行的操作,编译器都认为pc的内容是一个有sizeof(char)个字节的char型变量的首地址,所以*pc = '4 ',遇到这样的操作,编译器产生的代码就是把4这个字符付到pc所指的第一个字节里。虽然,pc实际指向的是int型的变量,有4个字节。 改变指针的类型,解引用操作的时候会影响到所指向的地址内容(类型所占的字节数可能不同,还有高位是符号位或是数据位)解析,不会发生数据丢失 未必!设想下面三个类: class A { public: int m_nA; A():m_nA(1){} public: A* GetA(){ return this; } }; class B { public: int m_nB; B():m_nB(2){} }; class C : public A, public B { public:

sph-常用关键字手册

sph-常用关键字手册

1.*CONSTRAINED_GLOBAL 全局约束 Purpose: Define a global boundary constraint plane.定义一个全局平面边界约束 TC Translational Constraint: 平动约束 EQ.1: constrained x translation, EQ.2: constrained y translation, EQ.3: constrained z translation, EQ.4: constrained x and y translations, EQ.5: constrained y and z translations, EQ.6: constrained x and z translations, EQ.7: constrained x, y, and z translations, RC Rotational Constraint: 转动约束 EQ.1: constrained x-rotation, EQ.2: constrained y-rotation, EQ.3: constrained z-rotation, EQ.4: constrained x and y rotations, EQ.5: constrained y and z rotations, EQ.6: constrained z and x rotations, EQ.7: constrained x, y, and z rotations. DIR Direction of normal 正常的方向 EQ.1: global x, EQ.2: global y, EQ.3: global z. X x-offset coordinate x方向偏移坐标 Y y-offset coordinate y方向偏移坐标 Z z-offset coordinate z方向偏移坐标 Remarks: Nodes within a mesh-size-dependent tolerance are constrained on a global plane. This

vr中文手册

VR中文手册 目录 1. VRay的特征 2. VRay的渲染参数 3. VRay 灯光 4. VRay 材质 5. VRay 贴图 6. VRay 阴影 一、VRay的特征 VRay光影追踪渲染器有Basic Package 和Advanced Package两种包装形式。Basic Package具有适当的功能和较低的价格,适合学生和业余艺 术家使用。Advanced Package 包含有几种特殊功能,适用于专业人员使用。 Basic Package的软件包提供的功能特点 ·真正的光影追踪反射和折射。(See: VRayMap) ·平滑的反射和折射。(See: VRayMap) ·半透明材质用于创建石蜡、大理石、磨砂玻璃。(See: VRayMap) ·面阴影(柔和阴影)。包括方体和球体发射器。(See: VRayShadow) ·间接照明系统(全局照明系统)。可采取直接光照(brute force), 和光照贴图方式(HDRi)。(See: Indirect illumination) ·运动模糊。包括类似Monte Carlo 采样方法。(See: Motion blur) ·摄像机景深效果。(See: DOF) ·抗锯齿功能。包括fixed, simple 2-level 和adaptive approaches等采样方法。(See: Image sampler) ·散焦功能。(See: Caustics ) · G-缓冲(RGBA, material/object ID, Z-buffer, velocity etc.) (See: G-Buffer ) Advanced Package软件包提供的功能特点 除包含所有基本功能外,还包括下列功能: ·基于G-缓冲的抗锯齿功能。(See: Image sampler) ·可重复使用光照贴图(save and load support)。对于fly-through 动画可增加采样。(See: Indirect illumination) ·可重复使用光子贴图(save and load support)。(See: Caustics) ·带有分析采样的运动模糊。(See: Motion blur ) ·真正支持HDRI贴图。包含*.hdr, *.rad 图片装载器,可处理立方体贴图和角贴图贴图坐标。可直接贴图而不会产生变形或切片。 ·可产生正确物理照明的自然面光源。(See: VRayLight) ·能够更准确并更快计算的自然材质。(See: VRay material) ·基于TCP/IP协议的分布式渲染。(See: Distributed rendering) ·不同的摄像机镜头:fish-eye, spherical, cylindrical and cubic cameras (See: Camera)

VRay最完整手册

VRay的特征 VRay光影追踪渲染器有Basic Package 和Advanced Package两种包装形式。Basic Package具有适当的功能和较低的价格,适合学生和业余艺术家使用。Advanced Package 包含有几种特殊功能,适用于专业人员使用。 Basic Package的软件包提供的功能特点 ·真正的光影追踪反射和折射。(See: VRayMap) ·平滑的反射和折射。(See: VRayMap) ·半透明材质用于创建石蜡、大理石、磨砂玻璃。(See: VRayMap) ·面阴影(柔和阴影)。包括方体和球体发射器。(See: VRayShadow) ·间接照明系统(全局照明系统)。可采取直接光照(brute force), 和光照贴图方式(HDRi)。(See: Indirect illu mination) ·运动模糊。包括类似Monte Carlo 采样方法。(See: Motion blur) ·摄像机景深效果。(See: DOF) ·抗锯齿功能。包括fixed, simple 2-level 和adaptive approaches等采样方法。(See: Image sampler) ·散焦功能。(See: Caustics ) ·G-缓冲(RGBA, material/object ID, Z-buffer, velocity etc.) (See: G-Buffer ) Advanced Package软件包提供的功能特点 除包含所有基本功能外,还包括下列功能: ·基于G-缓冲的抗锯齿功能。(See: Image sampler) ·可重复使用光照贴图(save and load support)。对于fly-through 动画可增加采样。(See: Indirect illuminati on) ·可重复使用光子贴图(save and load support)。(See: Caustics) ·带有分析采样的运动模糊。(See: Motion blur ) ·真正支持HDRI贴图。包含*.hdr, *.rad 图片装载器,可处理立方体贴图和角贴图贴图坐标。可直接贴图而不会产生变形或切片。 ·可产生正确物理照明的自然面光源。(See: VRayLight) ·能够更准确并更快计算的自然材质。(See: VRay material)

Velocity教程

Velocity教程 关键字: velocity教程 Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。 官方网站:https://www.sodocs.net/doc/b34738543.html,/velocity/ Velocity脚本摘要 1、声明:#set ($var=XXX) 左边可以是以下的内容 Variable reference String literal Property reference Method reference Number literal #set ($i=1) ArrayList #set ($arr=["yt1","t2"]) 技持算术运算符 2、注释: 单行## XXX 多行#* xxx xxxx xxxxxxxxxxxx*# References 引用的类型 3、变量Variables 以"$" 开头,第一个字符必须为字母。character followed by a VTL Identifier. (a .. z or A .. Z). 变量可以包含的字符有以下内容: alphabetic (a .. z, A .. Z) numeric (0 .. 9) hyphen ("-") underscore ("_") 4、Properties $Identifier.Identifier $https://www.sodocs.net/doc/b34738543.html,

void指针小结

C/C++语言void及void指针深层探索 1.概述 许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。 2.void的含义 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量,让我们试着来定义: 这行语句编译时会出错,提示“illegal use of type 'void'”。不过,即使void a的编译不会出错,它也没有任何实际意义。 void真正发挥的作用在于: (1)对函数返回的限定; (2)对函数参数的限定。 我们将在第三节对以上二点进行具体说明。 众所周知,如果指针p1和p2的类型相同,那么我们可以直接在p1和p2间互相赋值;如果p1和p2指向不同的数据类型,则必须使用强制类型转换运算符把赋值运算符右边的指针类型转换为左边指针的类型。 例如: 其中p1 = p2语句会编译出错,提示“'=' : cannot convert from 'int *' to 'float *'”,必须改为: 而void *则不同,任何类型的指针都可以直接赋值给它,无需进行强制类型转换: 但这并不意味着,void *也可以无需强制类型转换地赋给其它类型的指针。因为“无类型”可以包容“有类型”,而“有类型”则不能包容“无类型”。道理很简单,我们可以说“男人和女人都是人”,但不能说“人是男人”或者“人是女人”。下面的语句编译出错: 提示“'=' : cannot convert from 'void *' to 'int *'”。 3.void的使用

su简单中文使用手册

CWP软件的安装与简单使用手册

CWP软件的安装 一.在LINUX下建立用户CWP,在CWP下建立目录path,将源文件cwp.su.all.37.tar.Z放二.到path目录下,并建立bin文件夹 三.在CWP用户主目录下显示隐藏文件,修改.bash_profile 文件,在已有的export之后另起一行,分别添加 export CWPROOT=/home/CWP/path,再于 PATH=$PATH:$HOME/bin后添加 :/home/CWP/path/bin:/home/CWP 退出保存 四.从终端中分别输入 cd path zcat cwp.su.all.37.tar.Z | tar –xvf- … 待终端中反映完毕,分别输入 cd src make install make xtinstall make mglinstall make utils make xminstall make sfinstall 这期间可能有系统安装所等待的时间,不用急,但凡遇到yes/no,一路y下来即可。四.为了检查是否安装完毕,在终端中输入 Suplane > data.su Suxwigb < data.su & 若出现一个简单的图像,则成功!

CWP软件的简单说明 一、文中涉及的命令全部以小写形式,均可在终端窗口下输入,以次获取自述帮助。先说几个命令:suplane和suxwigb,more。 suplane作用是产生一个简单的零偏移距su文件,suxwigb是一个典型的X—windows 绘制图形工具,如例子: suplane > data.su suxwigb < data.su more < data.su 比较全面的了解它们,请在终端中输入suplane , suxwigb ,more 。 二、关于DEMOS的应用所有DEMOS必须把文件拷到用户根目录下,而后依照readme文件中的执行顺序,在终端中输入文件名。注意目录下的文件变动。 三、在执行DEMOS文件时,如果想清楚了解程序执行过程,请输入 more programname 由于水平有限,这里的谬误很多,希望大家能在偶尔翻看时,多多留心,发现并改正,衷心希望能和大家一起学习。谢谢

C语言中不同的结构体类型的指针间的强制转换详解

C语言中不同类型的结构体的指针间可以强制转换,很自由,也很危险。只要理解了其内部机制,你会发现C是非常灵活的。 一. 结构体声明如何内存的分布, 结构体指针声明结构体的首地址, 结构体成员声明该成员在结构体中的偏移地址。 变量的值是以二进制形式存储在内存中的,每个内存字节对应一个内存地址,而内存存储的值本身是没有整型,指针,字符等的区别的,区别的存在是因为我们对它们有不同的解读,param的值就是一个32位值,并且存储在某个内存单元中,通过这个32位值就能找到param所指向的结构的起始地址,通过这个起始地址和各个结构所包含变量离起始地址的偏移对这些变量进行引用, param->bIsDisable只是这种引用更易读的写法,只要param是指向 PAINT_PARAM的指针,那么param的值就肯定存在,param存在,偏移量已知,那么param->bIsDisable就肯定存在,只是要记住,param->bIsDisable只是代表了对param一定偏移地址的值。 不是说某个地址有那个结构体你才能引用,即使没有,你也能引用,因为你已经告诉了编译器param变量就是指向一个PAINT_PARAM结构体的变量并且指明了param的值,机器码的眼中是没有数据结构一说的,它只是机械的按照 指令的要求从内存地址取值,那刚才的例子来说,peg->x,peg->y的引用无论 0x30000000是否存在一个eg结构体都是合法的,如果0x30000000开始的8 个字节存在eg结构体,那么引用的就是这个结构体的值,如果这个位置是未定义的值,那么引用的结果就是这8个字节中的未定义值,内存位置总是存在的,而对内存中值的引用就是从这些内存位置对应的内存单元取值。 举个例子: typedefstruct_eg { int x; int y; }eg;

AVL用户手册

AVL 3.14 User Primer last update 28 Aug 2004 Mark Drela, MIT Aero & Astro Harold Youngren, Aerocraft, Inc. History AVL (Athena Vortex Lattice) 1.0 was originally written by Harold Youngren circa 1988 for the MIT Athena TODOR aero software collection. A number of modifications have since been added by Mark Drela and Harold Youngren,to the point where only a trace of the original code remains. General Description AVL 3.xx now has a large number of features intended for rapid aircraft configuration analysis. The major features are as follows: Aerodynamic components Lifting surfaces Slender bodies Configuration description Keyword-driven geometry input file Defined sections with linear interpolation Section properties camberline is NACA xxxx, or from airfoil file control deflections parabolic profile drag polar, Re-scaling Scaling, translation, rotation of entire surface or body Duplication of entire surface or body Singularities Horseshoe vortices (surfaces) Source+doublet lines (bodies) Finite-core option Discretization Uniform Sine Cosine Blend Control deflections Via normal-vector tilting Leading edge flaps Trailing edge flaps Hinge lines independent of discretization General freestream description alpha,beta flow angles

MFC+类型转换

VC++类型转换整理 已有 84 次阅读2009-11-30 16:18标签: 类型 1、CString to char* 经过类型强制转换,可以将CString类型转换成char*,例如:CString cStr = "Hello,world!"; char* zStr = (char*)(LPCTSTR)cStr; 2、char* to CString char*类型可以直接给CString,完成自动转换,例如: char* zStr = "Hello,world!"; CString cStr = zStr; 3、CString to LPCSTR 将CString转换成LPCSTR,需要获得CString的长度,例如:CString cStr = _T("Hello,world!"); int nLen = cStr.GetLength(); LPCSTR lpszBuf = cStr.GetBuffer(nLen); 4、CString to LPSTR 这个和第3个技巧是一样的,例如: CString cStr = _T("Hello,world!"); int nLen = str.GetLength(); LPSTR lpszBuf = str.GetBuffer(nLen); 5、Char[] to int 将字符串类型转换成整数型,可以使用atoi函数,例如: char c[10]; int n; n = atoi?; 6、Char[] to float 和第5个技巧一样,使用atof()函数可以转换成float型,例如:char c[10]; float f; f = atof?; 7、Char* to int 和第5个技巧完全一样,例如: char *str = "100"; int i;

相关主题