文档库 最新最全的文档下载
当前位置:文档库 › Quaetz入门

Quaetz入门

Quaetz入门
Quaetz入门

Quartz

Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,EJB作业预构建,JavaMail及其它,支持cron-like表达式等等。

Quartz是一个完全由Java编写的开源作业调度框架。不要让作业调度这个术语吓着你。尽管Quartz框架整合了许多额外功能,但就其简易形式看,你会发现它易用得简直让人受不了!。简单地创建一个实现org.quartz.Job接口的Java类。Job接口包含唯一的方法:

在你的Job接口实现类里面,添加一些逻辑到execute()方法。一旦你配置好Job实现类并设定好调度时间表,Quartz将密切注意剩余时间。当调度程序确定该是通知你的作业的时候,Quartz框架将调用你Job实现类(作业类)上的execute()方法并允许做它该做的事情。无需报告任何东西给调度器或调用任何特定的东西。仅仅执行任务和结束任务即可。如果配置你的作业在随后再次被调用,Quartz框架将在恰当的时间再次调用它。

Quartz能用在单机J2SE应用中,作为一个RMI服务器,也可以用在web应用中,甚至也可以用在J2EE应用服务器中。

quartz.properties文件

Quartz有一个叫做quartz.properties的配置文件,它允许你修改框架运行时环境。缺省是使用Quartz.jar里面的quartz.properties文件。当然,你应该创建一个

quartz.properties文件的副本并且把它放入你工程的classes目录中以便类装载器找到它。

Quartz调度器

Quartz框架的核心是调度器。调度器负责管理Quartz应用运行时环境。调度器不是靠自己做所有的工作,而是依赖框架内一些非常重要的部件。Quartz不仅仅是线程和线程管理。为确保可伸缩性,Quartz采用了基于多线程的架构。

启动时,框架初始化一套worker线程,这套线程被调度器用来执行预定的作业。这就是Quartz怎样能并发运行多个作业的原理。Quartz依赖一套松耦合的线程池管理部件来管理线程环境。

作业

用Quartz的行话讲,作业是一个执行任务的简单Java类。任务可以是任何Java代码。只需你实现org.quartz.Job接口并且在出现严重错误情况下抛出JobExecutionException异常即可。

Job接口包含唯一的一个方法execute(),作业从这里开始执行。一旦实现了Job接口和execute()方法,当Quartz确定该是作业运行的时候,它将调用你的作业。Execute()方法内就完全是你要做的事情。下面有一些你要在作业里面做事情的例子:

·用JavaMail(或者用其他的像Commons Net一样的邮件框架)发送邮件

·创建远程接口并且调用在EJB上的方法

·获取Hibernate Session,查询和更新关系数据库里的数据

·使用OSWorkflow并且从作业调用一个工作流

·使用FTP和到处移动文件

·调用Ant构建脚本开始预定构建

这种可能性是无穷的,正事这种无限可能性使得框架功能如此强大。Quartz给你提供了一个机制来建立具有不同粒度的、可重复的调度表,于是,你只需创建一个Java类,这个类被调用而执行任务。

作业管理和存储

作业一旦被调度,调度器需要记住并且跟踪作业和它们的执行次数。如果你的作业是30分钟后或每30秒调用,这不是很有用。事实上,作业执行需要非常准确和即时调用在被调度作业上的execute()方法。Quartz通过一个称之为作业存储(JobStore)的概念来做作业存储和管理。

有效作业存储

Quartz提供两种基本作业存储类型。第一种类型叫做RAMJobStore,它利用通常的内存来持久化调度程序信息。这种作业存储类型最容易配置、构造和运行。对许多应用来说,这种作业存储已经足够了。

然而,因为调度程序信息是存储在被分配给JVM的内存里面,所以,当应用程序停止运行时,所有调度信息将被丢失。如果你需要在重新启动之间持久化调度信息,则将需要第二种类型的作业存储。

第二种类型的作业存储实际上提供两种不同的实现,但两种实现一般都称为JDBC作业存储。两种JDBC作业存储都需要JDBC驱动程序和后台数据库来持久化调度程序信息。这两种类型的不同在于你是否想要控制数据库事务或者释放控制给应用服务器例如BEA's WebLogic或Jboss。(这类似于J2EE领域中,Bean管理的事务和和容器管理事务之间的区别)这两种JDBC作业存储是:

·JobStoreTX:当你想要控制事务或工作在非应用服务器环境中是使用

·JobStoreCMT:当你工作在应用服务器环境中和想要容器控制事务时使用。

JDBC作业存储为需要调度程序维护调度信息的用户而设计。

作业和触发器

Quartz设计者做了一个设计选择来从调度分离开作业。Quartz中的触发器用来告诉调度程序作业什么时候触发。框架提供了一把触发器类型,但两个最常用的是SimpleTrigger和CronTrigger。

SimpleTrigger:

适合你需要在给定的时间和重复次数或者两次打火之间等待的秒数打火一个作业

CronTrigger:

适合许多复杂的作业调度CronTrigger是基于Calendar-like调度的。当你需要在除星期六和星期天外的每天上午10点半执行作业时,那么应该使用CronTrigger。正如它的名字所暗示的那样,CronTrigger是基于Unix克隆表达式的。

作为一个例子,下面的Quartz克隆表达式将在星期一到星期五的每天上午10点15分执行一个作业。

下面的表达式

将在2002年到2005年的每个月的最后一个星期五上午10点15分执行作业。你不可能用SimpleTrigger来做这些事情。你可以用两者之中的任何一个,但哪个跟合适则取决于你的调度需要。

Quartz体系结构

Quartz对任务调度的领域问题进行了高度的抽象,提出了调度器、任务和触发器这3个核心的概念,并在org.quartz通过接口和类对重要的这些核心概念进行描述:

●Job:是一个接口,只有一个方法void execute(JobExecutionContext context),开发者实现该接口定义运行任务,JobExecutionContext类提供了调度上下文的各种信息。Job 运行时的信息保存在JobDataMap实例中;

●JobDetail:Quartz在每次执行Job时,都重新创建一个Job实例,所以它不直接接受一个Job的实例,相反它接收一个Job实现类,以便运行时通过newInstance()的反射机制实例化Job。因此需要通过一个类来描述Job的实现类及其它相关的静态信息,如Job名字、描述、关联监听器等信息,JobDetail承担了这一角色。

通过该类的构造函数可以更具体地了解它的功用:JobDetail(https://www.wendangku.net/doc/eb1483317.html,ng.String name, https://www.wendangku.net/doc/eb1483317.html,ng.String group, https://www.wendangku.net/doc/eb1483317.html,ng.Class jobClass),该构造函数要求指定Job的实现类,以及任务在Scheduler中的组名和Job名称;

●Trigger:是一个类,描述触发Job执行的时间触发规则。主要有SimpleTrigger和CronTrigger这两个子类。当仅需触发一次或者以固定时间间隔周期执行,SimpleTrigger 是最适合的选择;而CronTrigger则可以通过Cron表达式定义出各种复杂时间规则的调度方案:如每早晨9:00执行,周一、周三、周五下午5:00执行等;

●Calendar:org.quartz.Calendar和java.util.Calendar不同,它是一些日历特定时间点的集合(可以简单地将org.quartz.Calendar看作java.util.Calendar的集合——java.util.Calendar代表一个日历时间点,无特殊说明后面的Calendar即指org.quartz.Calendar)。一个Trigger可以和多个Calendar关联,以便排除或包含某些时间点。

假设,我们安排每周星期一早上10:00执行任务,但是如果碰到法定的节日,任务则不执行,这时就需要在Trigger触发机制的基础上使用Calendar进行定点排除。针对不同时间段类型,Quartz在org.quartz.impl.calendar包下提供了若干个Calendar的实现类,如AnnualCalendar、MonthlyCalendar、WeeklyCalendar分别针对每年、每月和每周进行定义;

●Scheduler:代表一个Quartz的独立运行容器,Trigger和JobDetail可以注册到

Scheduler中,两者在Scheduler中拥有各自的组及名称,组及名称是Scheduler查找定位容器中某一对象的依据,Trigger的组及名称必须唯一,JobDetail的组和名称也必须唯一(但可以和Trigger的组和名称相同,因为它们是不同类型的)。Scheduler定义了多个接口方法,允许外部通过组及名称访问和控制容器中Trigger和JobDetail。

Scheduler可以将Trigger绑定到某一JobDetail中,这样当Trigger触发时,对应的Job 就被执行。一个Job可以对应多个Trigger,但一个Trigger只能对应一个Job。可以通过SchedulerFactory创建一个Scheduler实例。Scheduler拥有一个SchedulerContext,它类似于ServletContext,保存着Scheduler上下文信息,Job和Trigger都可以访问SchedulerContext内的信息。SchedulerContext内部通过一个Map,以键值对的方式维护这些上下文数据,SchedulerContext为保存和获取数据提供了多个put()和getXxx()的方法。可以通过Scheduler# getContext()获取对应的SchedulerContext实例;

●ThreadPool:Scheduler使用一个线程池作为任务运行的基础设施,任务通过共享线程池中的线程提高运行效率。

Job有一个StatefulJob子接口,代表有状态的任务,该接口是一个没有方法的标签接口,其目的是让Quartz知道任务的类型,以便采用不同的执行方案。无状态任务在执行时拥有自己的JobDataMap拷贝,对JobDataMap的更改不会影响下次的执行。而有状态任务共享共享同一个JobDataMap实例,每次任务执行对JobDataMap所做的更改会保存下来,后面的执行可以看到这个更改,也即每次执行任务后都会对后面的执行发生影响。

正因为这个原因,无状态的Job可以并发执行,而有状态的StatefulJob不能并发执行,这意味着如果前次的StatefulJob还没有执行完毕,下一次的任务将阻塞等待,直到前次任务执行完毕。有状态任务比无状态任务需要考虑更多的因素,程序往往拥有更高的复杂度,因此除非必要,应该尽量使用无状态的Job。

如果Quartz使用了数据库持久化任务调度信息,无状态的JobDataMap仅会在Scheduler 注册任务时保持一次,而有状态任务对应的JobDataMap在每次执行任务后都会进行保存。Trigger自身也可以拥有一个JobDataMap,其关联的Job可以通过JobExecutionContext#getTrigger().getJobDataMap()获取Trigger中的JobDataMap。不管是有状态还是无状态的任务,在任务执行期间对Trigger的JobDataMap所做的更改都不会进行持久,也即不会对下次的执行产生影响。

Quartz拥有完善的事件和监听体系,大部分组件都拥有事件,如任务执行前事件、任务执行后事件、触发器触发前事件、触发后事件、调度器开始事件、关闭事件等等,可以注册相应的监听器处理感兴趣的事件。

图1描述了Scheduler的内部组件结构,SchedulerContext提供Scheduler全局可见的上下文信息,每一个任务都对应一个JobDataMap,虚线表达的JobDataMap表示对应有状态的任务:

图1 Scheduler结构图

一个Scheduler可以拥有多个Triger组和多个JobDetail组,注册Trigger和JobDetail 时,如果不显式指定所属的组,Scheduler将放入到默认组中,默认组的组名为Scheduler.DEFAULT_GROUP。组名和名称组成了对象的全名,同一类型对象的全名不能相同。

Scheduler本身就是一个容器,它维护着Quartz的各种组件并实施调度的规则。Scheduler 还拥有一个线程池,线程池为任务提供执行线程——这比执行任务时简单地创建一个新线程要拥有更高的效率,同时通过共享节约资源的占用。通过线程池组件的支持,对于繁忙度高、压力大的任务调度,Quartz将可以提供良好的伸缩性。

提示: Quartz完整下载包examples目录下拥有10多个实例,它们是快速掌握Quartz 应用很好的实例。

使用SimpleTrigger

SimpleTrigger拥有多个重载的构造函数,用以在不同场合下构造出对应的实例:

●Simpl eTrigger(String name, String group):通过该构造函数指定Trigger所属组和名称;

●SimpleTrigger(String name, String group, Date startTime):除指定Trigger所属组和名称外,还可以指定触发的开发时间;

●SimpleTrigger(String name, String group, Date startTime, Date endTime, int repeatCount, long repeatInterval):除指定以上信息外,还可以指定结束时间、重复执行次数、时间间隔等参数;

●SimpleTrigger(String name, String group, String jobName, String jobGroup, Date startTime, Date endTime, int repeatCount, long repeatInterval):这是最复杂的一个构造函数,在指定触发参数的同时,还通过jobGroup和jobName,让该Trigger和Scheduler 中的某个任务关联起来。

通过实现org.quartz..Job 接口,可以使Java 类化身为可调度的任务。代码清单1提供了Quartz 任务的一个示例:

代码清单1 SimpleJob:简单的Job实现类

package com.baobaotao.basic.quartz;

import java.util.Date;

import org.quartz.Job;

import org.quartz.JobExecutionContext;

import org.quartz.JobExecutionException;

public class Sim pleJob implements Job {

①实例Job接口方法

public void execute(JobExecutionContext jobCtx)throws JobExecutionExceptio

n {

System.out.println(jobCt x.getTrigger().getName()+ " triggered. tim e is:" + (ne w Date()));

}

}

这个类用一条非常简单的输出语句实现了Job接口的execute(JobExecutionContext context) 方法,这个方法可以包含想要执行的任何代码。下面,我们通过SimpleTrigger 对SimpleJob进行调度:

代码清单2 SimpleTriggerRunner:使用SimpleTrigger进行调度

package com.baobaotao.basic.quartz;

import java.util.Date;

import org.quartz.JobDetail;

import org.quartz.Scheduler;

import org.quartz.SchedulerFactory;

import org.quartz.SimpleTrigger;

import org.quartz.impl.StdSchedulerFactory;

public class Sim pleTriggerRunner {

public static void m ain(String args[]) {

try {

①创建一个JobDetail实例,指定SimpleJob

JobDetail jobDetail =new JobDetail("job1_1","jGroup1", SimpleJob.class);

②通过SimpleTrigger定义调度规则:马上启动,每2秒运行一次,共运行100次

SimpleTrigger simpleTrigger =new SimpleTrigger("trigger1_1","tgroup1");

simpleTrigger.setStartTim e(new Date());

simpleTrigger.set RepeatInterval(2000);

simpleTrigger.set RepeatCount(100);

③通过SchedulerFactory获取一个调度器实例

SchedulerFactory schedulerFactory =new StdSchedulerFactory();

Scheduler scheduler = schedulerFactory.getScheduler();

scheduler.scheduleJob(jobDetail, simpleTrigger);④注册并进行调度

scheduler.start();⑤调度启动

} catch (Exception e) {

e.printStackTrace();

}

}

}

首先在①处通过JobDetail封装SimpleJob,同时指定Job在Scheduler中所属组及名称,这里,组名为jGroup1,而名称为job1_1。

在②处创建一个SimpleTrigger实例,指定该Trigger在Scheduler中所属组及名称。接着设置调度的时间规则。

最后,需要创建Scheduler实例,并将JobDetail和Trigger实例注册到Scheduler中。这里,我们通过StdSchedulerFactory获取一个Scheduler实例,并通过scheduleJob(JobDetail jobDetail, Trigger trigger)完成两件事:

1)将JobDetail和Trigger注册到Scheduler中;

2)将Trigger指派给JobDetail,将两者关联起来。

当Scheduler启动后,Trigger将定期触发并执行SimpleJob的execute(JobExecutionContext jobCtx)方法,然后每10 秒重复一次,直到任务被执行100 次后停止。

还可以通过SimpleTrigger的setStartTime(java.util.Date startTime)和setEndTime(java.util.Date endTime)指定运行的时间范围,当运行次数和时间范围冲突时,超过时间范围的任务运行不被执行。如可以通过simpleTrigger.setStartTime(new Date(System.currentTimeMillis() + 60000L))指定60秒钟以后开始。

除了通过scheduleJob(jobDetail, simpleTrigger)建立Trigger和JobDetail的关联,还有另外一种关联Trigger和JobDetail的方式:

JobDetail jobDetail =new JobDetail("job1_1","jGroup1", SimpleJob.class);

SimpleTrigger simpleTrigger =new SimpleTrigger("trigger1_1","tgroup1");

simpleTrigger.setJobGroup("jGroup1");①-1:指定关联的Job组名

simpleTrigger.setJobName("job1_1");①-2:指定关联的Job名称

scheduler.addJob(jobDetail, true);②注册JobDetail

scheduler.scheduleJob(simpleTrigger);③注册指定了关联JobDetail的Trigger

在这种方式中,Trigger通过指定Job所属组及Job名称,然后使用Scheduler的scheduleJob(Trigger trigger)方法注册Trigger。有两个值得注意的地方:

通过这种方式注册的Trigger实例必须已经指定Job组和Job名称,否则调用注册Trigger 的方法将抛出异常;

引用的JobDetail对象必须已经存在于Scheduler中。也即,代码中①、②和③的先后顺序不能互换。

在构造Trigger实例时,可以考虑使用org.quartz.TriggerUtils工具类,该工具类不但提供了众多获取特定时间的方法,还拥有众多获取常见Trigger的方法,如makeSecondlyTrigger(String trigName)方法将创建一个每秒执行一次的Trigger,而makeWeeklyTrigger(String trigName, int dayOfWeek, int hour, int minute)将创建一个每星期某一特定时间点执行一次的Trigger。而getEvenMinuteDate(Date date)方法将返回某一时间点一分钟以后的时间。

使用CronTrigger

CronTrigger 能够提供比SimpleTrigger 更有具体实际意义的调度方案,调度规则基于Cron 表达式,CronTrigger 支持日历相关的重复时间间隔(比如每月第一个周一执行),而不是简单的周期时间间隔。因此,相对于SimpleTrigger而言,CronTrigger在使用上也要复杂一些。

Cron表达式

Quartz使用类似于Linux下的Cron表达式定义时间规则,Cron表达式由6或7个由空格分隔的时间字段组成,如表1所示:

表1 Cron表达式时间字段

Cron表达式的时间字段除允许设置数值外,还可使用一些特殊的字符,提供列表、范围、通配符等功能,细说如下:

●星号(*):可用在所有字段中,表示对应时间域的每一个时刻,例如,*在分钟字段时,表示“每分钟”;

●问号(?):该字符只在日期和星期字段中使用,它通常指定为“无意义的值”,相当于点位符;

●减号(-):表达一个范围,如在小时字段中使用“10-12”,则表示从10到12点,即10,11,12;

●逗号(,):表达一个列表值,如在星期字段中使用“MON,WED,FRI”,则表示星期一,星

期三和星期五;

●斜杠(/):x/y表达一个等步长序列,x为起始值,y为增量步长值。如在分钟字段中使用0/15,则表示为0,15,30和45秒,而5/15在分钟字段中表示5,20,35,50,你也可以使用*/y,它等同于0/y;

●L:该字符只在日期和星期字段中使用,代表“Last”的意思,但它在两个字段中意思不同。L在日期字段中,表示这个月份的最后一天,如一月的31号,非闰年二月的28号;如果L用在星期中,则表示星期六,等同于7。但是,如果L出现在星期字段里,而且在前面有一个数值X,则表示“这个月的最后X天”,例如,6L表示该月的最后星期五;

●W:该字符只能出现在日期字段里,是对前导日期的修饰,表示离该日期最近的工作日。例如15W表示离该月15号最近的工作日,如果该月15号是星期六,则匹配14号星期五;如果15日是星期日,则匹配16号星期一;如果15号是星期二,那结果就是15号星期二。但必须注意关联的匹配日期不能够跨月,如你指定1W,如果1号是星期六,结果匹配的是3号星期一,而非上个月最后的那天。W字符串只能指定单一日期,而不能指定日期范围;

●LW组合:在日期字段可以组合使用LW,它的意思是当月的最后一个工作日;

●井号(#):该字符只能在星期字段中使用,表示当月某个工作日。如6#3表示当月的第三个星期五(6表示星期五,#3表示当前的第三个),而4#5表示当月的第五个星期三,假设当月没有第五个星期三,忽略不触发;

● C:该字符只在日期和星期字段中使用,代表“Calendar”的意思。它的意思是计划所关联的日期,如果日期没有被关联,则相当于日历中所有日期。例如5C在日期字段中就相当于日历5日以后的第一天。1C在星期字段中相当于星期日后的第一天。

Cron表达式对特殊字符的大小写不敏感,对代表星期的缩写英文大小写也不敏感。

表2下面给出一些完整的Cron表示式的实例:

表2 Cron表示式示例

CronTrigger实例

下面,我们使用CronTrigger对SimpleJob进行调度,通过Cron表达式制定调度规则,让它每5秒钟运行一次:

代码清单3 CronTriggerRunner:使用CronTrigger进行调度

package com.baobaotao.basic.quartz;

import org.quartz.CronExpression;

import org.quartz.CronTrigger;

import org.quartz.JobDetail;

import org.quartz.Scheduler;

import org.quartz.SchedulerFactory;

import org.quartz.impl.StdSchedulerFactory;

public class CronTriggerRunner {

public static void m ain(String args[]) {

try {

JobDetail jobDetail =new JobDetail("job1_2", "jGroup1",SimpleJob.class);

①-1:创建CronTrigger,指定组及名称

CronTrigger cronTrigger =new CronTrigger("trigger1_2", "tgroup1");

CronExpression cexp =new CronExpression("0/5 * * * * ?");①-2:定义Cron表达式

cronTrigger.setCronExpression(cexp);①-3:设置Cron表达式

SchedulerFactory schedulerFactory =new StdSchedulerFactory();

Scheduler scheduler = schedulerFactory.getScheduler();

scheduler.scheduleJob(jobDetail, cronTrigger);

scheduler.start();

//②

} catch (Exception e) {

e.printStackTrace();

}

}

运行CronTriggerRunner,每5秒钟将触发运行SimpleJob一次。默认情况下Cron表达式对应当前的时区,可以通过CronTriggerRunner的setTimeZone(java.util.TimeZone timeZone)方法显式指定时区。你还也可以通过setStartTime(java.util.Date startTime)和setEndTime(java.util.Date endTime)指定开始和结束的时间。

在代码清单3的②处需要通过Thread.currentThread.sleep()的方式让主线程睡眠,以便调度器可以继续工作执行任务调度。否则在调度器启动后,因为主线程马上退出,也将同时引起调度器关闭,调度器中的任务都将相应销毁,这将导致看不到实际的运行效果。在单元测试的时候,让主线程睡眠经常使用的办法。对于某些长周期任务调度的测试,你可以简单地调整操作系统时间进行模拟。

使用Calendar

在实际任务调度中,我们不可能一成不变地按照某个周期性的调度规则运行任务,必须考虑到实现生活中日历上特定日期,就象习惯了大男人作风的人在2月14号也会有不同表现一样。

下面,我们安排一个任务,每小时运行一次,并将五一节和国际节排除在外,其代码如代码清单4所示:

代码清单4 CalendarExample:使用Calendar

package com.baobaotao.basic.quartz;

import java.util.Calendar;

import java.util.Date;

import java.util.GregorianCalendar;

import org.quartz.impl.calendar.AnnualCalendar;

import org.quartz.TriggerUtils;

public class CalendarExample {

public static void m ain(String[] args) throws Exception {

SchedulerFactory sf =new StdSchedulerFactory();

Scheduler scheduler = sf.getScheduler();

//法定节日是以每年为周期的,所以使用AnnualCalendar

AnnualCalendar holidays = new AnnualCalendar();

//五一劳动节

Calendar laborDay =new GregorianCalendar();

laborDay.add(Calendar.MONT H,5);

laborDay.add(Calendar.DATE,1);

holidays.setDayExcluded(laborDay, true); ②-1:排除的日期,如果设置为false则为包含

③国庆节

Calendar nationalDay =new GregorianCalendar();

nationalDay.add(Calendar.MONT H,10);

nationalDay.add(Calendar.DATE,1);

holidays.setDayExcluded(nationalDay, true);③-1:排除该日期

scheduler.addCalendar("holidays", holidays, false, false);④向Scheduler注册日历

Date runDate = TriggerUtils.getDateOf(0,0, 10, 1, 4);⑤4月1号上午10点

JobDetail job =new JobDetail("job1", "group1", SimpleJob.class);

SimpleTrigger trigger =new SimpleTrigger("trigger1", "group1",

runDate,

null,

SimpleTrigger.REPEAT_INDEFINITELY,

60L * 60L * 1000L);

trigger.setCalendarName("holidays");⑥让Trigger应用指定的日历规则

scheduler.scheduleJob(job, trigger);

scheduler.start();

//实际应用中主线程不能停止,否则Scheduler得不到执行,此处从略

}

}

由于节日是每年重复的,所以使用org.quartz.Calendar的AnnualCalendar实现类,通过②、③的代码,指定五一和国庆两个节日并通过AnnualCalendar#setDayExcluded(Calendar day, boolean exclude)方法添加这两个日期。exclude为true时表示排除指定的日期,如果为false时表示包含指定的日期。

在定制好org.quartz.Calendar后,还需要通过Scheduler#addCalendar(String calName, Calendar calendar, boolean replace, boolean updateTriggers)进行注册,如果updateTriggers为true,Scheduler中已引用Calendar的Trigger将得到更新,如④所示。

在⑥处,我们让一个Trigger指定使用Scheduler中代表节日的Calendar,这样Trigger 就会避开五一和国庆这两个特殊日子了。

任务调度信息存储

在默认情况下Quartz将任务调度的运行信息保存在内存中,这种方法提供了最佳的性能,因为内存中数据访问最快。不足之处是缺乏数据的持久性,当程序路途停止或系统崩溃时,所有运行的信息都会丢失。

比如我们希望安排一个执行100次的任务,如果执行到50次时系统崩溃了,系统重启时任务的执行计数器将从0开始。在大多数实际的应用中,我们往往并不需要保存任务调度的现场数据,因为很少需要规划一个指定执行次数的任务。

对于仅执行一次的任务来说,其执行条件信息本身应该是已经持久化的业务数据(如锁定到期解锁任务,解锁的时间应该是业务数据),当执行完成后,条件信息也会相应改变。当然调度现场信息不仅仅是记录运行次数,还包括调度规则、JobDataMap中的数据等等。

如果确实需要持久化任务调度信息,Quartz允许你通过调整其属性文件,将这些信息保存到数据库中。使用数据库保存任务调度信息后,即使系统崩溃后重新启动,任务的调度信息将得到恢复。如前面所说的例子,执行50次崩溃后重新运行,计数器将从51开始计数。使用了数据库保存信息的任务称为持久化任务。

通过配置文件调整任务调度信息的保存策略

其实Quartz JAR文件的org.quartz包下就包含了一个quartz.properties属性配置文件并提供了默认设置。如果需要调整默认配置,可以在类路径下建立一个新的quartz.properties,它将自动被Quartz加载并覆盖默认的设置。

先来了解一下Quartz的默认属性配置文件:

代码清单5 quartz.properties:默认配置

①集群的配置,这里不使用集群

org.quartz.scheduler.instanceName = DefaultQuartzScheduler

org.quartz.scheduler.rmi.export = false

org.quartz.scheduler.rmi.proxy = false

org.quartz.scheduler.wrapJobExecutionInUserTransaction = false

②配置调度器的线程池

org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool

org.quartz.threadPool.threadCount = 10

org.quartz.threadPool.threadPriority = 5

org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true ③配置任务调度现场数据保存机制

org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore

Quartz的属性配置文件主要包括三方面的信息:

1)集群信息;

2)调度器线程池;

3)任务调度现场数据的保存。

如果任务数目很大时,可以通过增大线程池的大小得到更好的性能。默认情况下,Quartz 采用org.quartz.simpl.RAMJobStore保存任务的现场数据,顾名思义,信息保存在RAM 内存中,我们可以通过以下设置将任务调度现场数据保存到数据库中:

代码清单6 quartz.properties:使用数据库保存任务调度现场数据

org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX

org.quartz.jobStore.tablePrefix = QRTZ_①数据表前缀

org.quartz.jobStore.dataSource = qzDS②数据源名称

③定义数据源的具体属性

org.quartz.dataSource.qzDS.driver = oracle.jdbc.driver.OracleDriver

org.quartz.dataSource.qzDS.URL = jdbc:oracle:thin:@localhost:1521:ora9i

https://www.wendangku.net/doc/eb1483317.html,er = stamen

org.quartz.dataSource.qzDS.password = abc

org.quartz.dataSource.qzDS.maxConnections = 10

要将任务调度数据保存到数据库中,就必须使用org.quartz.impl.jdbcjobstore.JobStoreTX代替原来的org.quartz.simpl.RAMJobStore 并提供相应的数据库配置信息。首先①处指定了Quartz数据库表的前缀,在②处定义了一个数据源,在③处具体定义这个数据源的连接信息。

你必须事先在相应的数据库中创建Quartz的数据表(共8张),在Quartz的完整发布包的docs/dbT ables目录下拥有对应不同数据库的SQL脚本。

查询数据库中的运行信息

任务的现场保存对于上层的Quartz程序来说是完全透明的,我们在src目录下编写一个如代码清单6所示的quartz.properties文件后,重新运行代码清单2或代码清单3的程序,在数据库表中将可以看到对应的持久化信息。当调度程序运行过程中途停止后,任务调度的现场数据将记录在数据表中,在系统重启时就可以在此基础上继续进行任务的调度。

代码清单7 JDBCJobStoreRunner:从数据库中恢复任务的调度

package com.baobaotao.basic.quartz;

天正建筑TArch2014从入门到提高视频教程

江西省南昌市2015-2016学年度第一学期期末试卷 (江西师大附中使用)高三理科数学分析 一、整体解读 试卷紧扣教材和考试说明,从考生熟悉的基础知识入手,多角度、多层次地考查了学生的数学理性思维能力及对数学本质的理解能力,立足基础,先易后难,难易适中,强调应用,不偏不怪,达到了“考基础、考能力、考素质”的目标。试卷所涉及的知识内容都在考试大纲的范围内,几乎覆盖了高中所学知识的全部重要内容,体现了“重点知识重点考查”的原则。 1.回归教材,注重基础 试卷遵循了考查基础知识为主体的原则,尤其是考试说明中的大部分知识点均有涉及,其中应用题与抗战胜利70周年为背景,把爱国主义教育渗透到试题当中,使学生感受到了数学的育才价值,所有这些题目的设计都回归教材和中学教学实际,操作性强。 2.适当设置题目难度与区分度 选择题第12题和填空题第16题以及解答题的第21题,都是综合性问题,难度较大,学生不仅要有较强的分析问题和解决问题的能力,以及扎实深厚的数学基本功,而且还要掌握必须的数学思想与方法,否则在有限的时间内,很难完成。 3.布局合理,考查全面,着重数学方法和数学思想的考察 在选择题,填空题,解答题和三选一问题中,试卷均对高中数学中的重点内容进行了反复考查。包括函数,三角函数,数列、立体几何、概率统计、解析几何、导数等几大版块问题。这些问题都是以知识为载体,立意于能力,让数学思想方法和数学思维方式贯穿于整个试题的解答过程之中。 二、亮点试题分析 1.【试卷原题】11.已知,,A B C 是单位圆上互不相同的三点,且满足AB AC → → =,则A BA C →→ ?的最小值为( ) A .1 4- B .12- C .34- D .1-

ps基本工具介绍【初学者必看】

广军影视2015-11-15 初学者必看 工具介绍 1、移动工具:可以对PS里的图层进行移动。 2、 矩形选框工具:可以对图像选择一个矩形的选择范围 单列选框工具:可以在图像或图层中绘制出1个像素高的横线或竖线区域,主要用于修复图像中丢失的像素。 椭圆选框工具:可以对图片选择一个椭圆或正圆的选择范围。【椭圆变正圆:按着shift 画圆为正圆;按shift+alt是从中心点出发往外画正圆】 3、【取消选区:ctrl+d 或菜单栏【选择】--取消选择】 套索工具:可以用来选区不规则形状的图像【在图像适当的位置单机并按住鼠标左键,拖曳鼠标绘制出需要的选区,松开鼠标左键,选区会自动封闭】 有羽化50所以看到的效果为圆选区) 属性栏红框:为选择方式选项【相加、相减、交叉】。 黄框:用于设定边缘的羽化程度。 白框:用于清除选区边缘的锯齿。 多边形套索工具:可以用来选取不规则的多边形图像(属性与套锁工具相同)【没有圆弧的图像沟边可以用这个工具,但不能勾出弧度】

【使用套索工具选区时,按enter键封闭选区。按ESC键取消选区,按delete键,删除上一个单击建立的选区点。】 磁性套索工具:可以用来选取不规则的并与背景反差大的图像【不须按鼠标而直接移动鼠标,在工具头处会出现自动跟踪的线,这条线总是走向颜色与颜色边界处,边界越明显磁力越强,将首尾相接后可完成选择】 属性:“宽度”选项用于设定套索检测检测范围,磁性套索工具将在这个范围内选取反差最大的边缘。“对比度”选项用于设定选取边缘的灵敏度,数值越大,则要求边缘与背景的反差越大。“频率”选项用于设定选区点的速率,数值越大,标记速率越快,标记点越多。 频率57 频率71 对比度10%

(完整word版)初中地理学法指导

地理课是我们比较熟悉的课程,很多的知识点甚至就是我们生活中的常识,所以要想学好它并不难。但你最起码应该做到下面五点:学会读图、识图记忆、学会“背”地理、掌握一般知 识、归纳整理。 1.掌会读图 学习地理,一定要把阅读课文同地图和课本内的插图紧密结合起来,才能加深对地理内容的认知和理解。 (1)直观读图法:各种地理图表中,有些图表的内容是较浅显易见的,直观读图法多适用于讲地理事物的空间分布。如在讲我国降水量的空间分布时,可先让学生在地图上找到年降水量最大的地方——台湾的火烧寮和年降水量最小的地方——新疆的托克逊,尔后在这两点间划一直线,再观察从东南向西北方向颜色的变化,便可知道“我国年降水量由东南沿海向西北内陆逐渐减少”。 (2)纵向联系法:学地理知识也和学其他知识一样,有一个循序渐进、由浅人深的过程。用联系法读地图,方可知道新知识的来龙去脉。如中国气候特点之一的“气候复杂多样”,同学们只要在读好“中国温度带的划分"、“中国干湿地区"和“中国地形图"的基础上,把影响气候的诸因素联系起来,便可得出结论:“疆域辽阔,南北跨纬度广,东西距海远近差别极大,地势高低相差悬殊,地形类型齐全、分布错综复杂是造成气候复杂多样的主要原因。"又如世界气候类型学习、亚洲主要山脉、高原与河流走向之间的关系等皆可用纵向联系法。 (3)横向对比法:学习地理时,特别是进行横向比较时,往往需借助地图,这样容易掌握地理事物的特点及其成因等。如在学习南美洲的地势地形时,可与北美洲的地势地形相比较。通过读图便知道,北美洲和南美洲相似之处都是由三大地形组成;而南美洲不同于北美洲,南美洲西部为高大的山脉,东部是平原与高原相间分布,北美洲则是南北纵列的三大地形。这样通过观察、比较,Jlrl~T x,-]南、北美洲地势地形的认识。 2.识图记忆 在中国地理的学习中,掌握省级行政区的划分是十分重要的,它关系到以后学习气候、河流、矿产等地理现象、地理事物的分布及分区地理等各知识点。而“中国政区’’图中各省地理位置的分布似乎比较乱,名称也较多,较难记忆,这样就成了同学们学习中的难点。如何提高学习、掌握这张图的效果,做到事半功倍呢?这就必须运用正确的学习方法及记忆技巧。 下面就介绍一种分块记忆方法:

金融学名词解释(含答案)

1.货币:(1)货币是一般等价物(2)货币就是货币行使的职能(3)货币是“流动性”(4) 货币是社会计算的工具和选票(5)货币是财富(6)货币是一种法律规定(7)货币是M0, M1,M2…… 2.纸币:纸制的货币 3.铸币:铸成一定形状并由国家印记证明其重量和成色的金属货币 4.辅币:本位货币单位以下的小面额货币,是本位币的等分 5.主币:就是本位币,是一个国家流通中的基本通货,一般作为该国法定的价格标准 6.银行券:银行发行的可以发挥货币功能的信用工具。 7.实物货币:以自然界中存在的物品或直接以商品形式发挥货币职能的货币形式 8.金属货币:以金属作为货币材料的货币形式 9.信用货币:以信用活动为基础产生的,能够发挥货币作用的信用工具 10.存款货币:能够发挥货币交易媒介和资产职能的银行存款 11.电子货币:以现代电子技术为基础,利用电子信息形式进行价值存储和转移的货币形式 12.狭义货币:现实流通的货币,为实现即期社会购买力服务(M0+企业单位活期存款+农村存款+机关团体部队存款) 13.广义货币:M1+准货币(企业单位定期存款+自筹基本建设存款+个人储蓄存款+其它存款) 14.货币制度:关于货币流通的结构和组织形式的一系列规定 15.自由铸造:公民有权把法令规定的金属币材送到国家造币厂铸成金属货币;公民也有权把铸币融化,还原为金属 16.限制铸造:只能由国家来铸造金属货币,特别是不足值的辅币必须由国家铸造,其他机构和个人不得铸造 17.无限法偿:不论支付数额多大,不论属于何种性质的支付,对方都不能拒绝接受 18.有限法偿:在一次支付中若超过规定的数额,收款人有权拒收,但在法定限额内不能拒收 19.布雷顿森林体系:第二次世界大战以后实行的以美元为中心的国际货币制度 20.牙买加体系:牙买加体系是上世纪 70 年代中期形成的、沿用至今的国际货币制度,主要内容是国际储备货币多元化、汇率安排多样化、多种渠道调节国际收支。 21.区域性货币制度:一定地区内的有关国家在经济联盟的基础上共同实行的,取代原有的国家货币制度的统一的货币制度 22.外汇:(1)动态:货币之间的兑换 (2)静态:以外币标示的,能够用于结算国际收支差额的资产 23.汇率:两国货币的兑换比例,货币的对外价值 24.直接标价法:以一定单位的外国货币作为标准计算应付多少本国货币来表示汇率,也被称为应付标价法 25.间接标价法:以一定数量的本国货币单位为基准,来计算应收多少外币来表示汇率,也被称为应收标价法 26.固定汇率:指两国货币的汇率基本固定,汇率的波动幅度被限制在较小的范围内,各国中央银行有义务维持本币币值的基本稳定 27.浮动汇率:不规定汇率波动的上下限,汇率随外汇市场的供求关系自由波动 28.换汇成本说:将购买力平价说中的非贸易品剔除,而只考虑贸易品的价格对比如何决定汇率及其变动。 29.购买力平价:瑞典经济学家卡塞尔1916提出,基本思想是货币价值在于购买力,汇率取决于货币的购买力之比; 30.利率平价:关于短期汇率波动的理论,认为汇率与利率之间具有密切的关系。若其他条件不变,国内利率提高导致本币升值,外国利率提高导致本币贬值;国内利率下降导致本币贬值,国外利率下降导致本币升值。 31.即期汇率:买卖双方成交后,在两个营业日内办理交割时所使用的汇率

天正教学

(1) 视频播放软件 https://www.wendangku.net/doc/eb1483317.html,/Soft/show.asp?id=1337 (2) 天正建筑教学视频1-8讲 https://www.wendangku.net/doc/eb1483317.html,/Soft/show.asp?id=1338 (3) 天正建筑教学视频9-14讲 https://www.wendangku.net/doc/eb1483317.html,/Soft/show.asp?id=1339 (4) 天正建筑教学视频15讲 https://www.wendangku.net/doc/eb1483317.html,/Soft/show.asp?id=1340 (5) 天正建筑教学视频16讲 https://www.wendangku.net/doc/eb1483317.html,/Soft/show.asp?id=1341 ( 6) 天正建筑教学视频17讲 https://www.wendangku.net/doc/eb1483317.html,/Soft/show.asp?id=1342 00 __________________ 我是武汉大学的环艺教师,欢迎交流! 欢迎访问卫老师环艺教学实验室官方网站 如果有问题,请到卫老师环艺教学论坛提出讨论 同学们普遍反映: "卫老师教学法-省时、管用、受益、不骗人!" 广告 acro 查看公开信息

发送悄悄话给 acro 访问 acro 的个人网站 查找 acro 发表的更多帖 子 查找 acro 发表的精华主 题 2006-02-22 , 08:26 #2 acro 初级会员 UID: 438411 帖子: 410 积分: 4 火星币: 0 声望: 403 Re:天正建筑教学视频免费下载(武汉大学金牌建筑学教师主讲) 序天正建筑CAD简介 1.绘图要素的变化 AutoCAD的绘图元素:点、线、面等几何元素 天正CAD的绘图元素:墙、门、窗、楼梯等建筑类元素 2.尽量保证天正作图的完整性 (1)最大呈度的使用天正作图 (2)小地方使用AutoCAD修饰 3.天正文档 (1)AutoCAD不能打开天正文档 (2)AutoCAD必须安装天正解释器(天正插件)后才能识别天正文 档 4.二维绘图三维对象 (1)天正作图基本上属于二维作图模式,但是图形确有三维信息 (2)使用"3do"命令观测三维模型 5.天正是在AutoCAD基础上二次开发的 二个版本的AutoCAD可以使用天正 (1)R15版:AutoCAD2000、AutoCAD2002 (2)R16版:AutoCAD2004、AutoCAD2005、AutoCAD2006 00 __________________ 我是武汉大学的环艺教师,欢迎交流! 欢迎访问卫老师环艺教学实验室官方网站 如果有问题,请到卫老师环艺教学论坛提出讨论

人教部编版高中地理学习方法指导

人教部编版高中地理学习方法指导 一·通俗理解,轻松把握 地理学科概念多,诸如地形、气候、河流、植被、资源等,这些概念又都有各自的概念体系,从而组成一个庞大的概念系统。其中很多概念由于学生所处环境的局限,理解起来很困难,因而妨碍了学生对它们的理解与应用。此时,可以教学生通俗地理解这些概念。比如海湾、半岛、海峡、岛屿这组概念,可以这样解释给他们:海湾就是海转了个弯,海转了弯肯定是朝大陆弯进来了嘛,你就到大陆边上找那些弯弯;半岛呢半是大陆,半是岛屿,就是陆地向着海洋伸出去的部分了,你就到大陆边上找那些尖尖(当然也有不尖的了,像伊比利亚半岛);海峡就是狭长的海了,要么夹在大陆与大陆之间(直布罗陀海峡),要么夹在大陆与岛屿之间(马达加斯加岛),要么夹在岛屿与岛屿之间(巴士海峡),你到这些地方去找就是了;至于岛屿嘛,它是小块的陆地,你当然要在海里头找了。如此一解释,学生们就再也不会到大陆内部去找岛屿,到海洋深处去找海湾了。 二·追忆经验,轻松作结 地球表面的自然现象和一些社会现象是地理学科的两项基本内容,同时其中的一些现象又是我们经常经历或曾经经历过的,如冷暖阴晴、刮风下雨、水涨水落、城市发展、

人口迁移等。对于教材中与此相关的内容的学习,我们完全可以通过追忆自身的生活经验来理解和掌握。例如,中国季风区的冬夏季气候特点、降水的季节分配特点以及年际变化特点,处在季风区北方的学生(东北地区除外)就可以在教师的引导下回忆——当地的冬天很冷,降雪也很少,常刮西北风(西北季风),夏季很热,降雨也多,常刮东南风(东南季风),由此轻轻松松作出结论——中国季风区冬季盛行西北季风,寒冷干燥,夏季盛行东南季风,温暖湿润(髙温多雨),年内降水主要集中于夏季,年际变化大。又如,讨论人口由乡村向城市迁移这一地理问题时,可以引导学生回忆身边的现实,寻找城市吸引人口的现实原因,以及带来的问题,并鼓励学生尽量用自己的语言表述,这也正是地理新课程倡导的理念之一——学习对生活有用的地理。 三·不求精确,常用“主要” 地理学科中经常要表述地理事物的空间发布,像高原、平原、盆地、山脉、丘陵、河流、森林、矿产、农作物等。表述这些地理事物的空间分布时,我们常常只列其要,采用“主要有”“主要是”等措辞,要教会学生“抓大放小”、“择要舍次”。这样,学生在列举中国地势第二级阶梯上的主要盆地时,就会只列出塔里木盆地、准格尔盆地、四川盆地,不再列出吐鲁番盆地了。在列举南北方地区的主要农作物时,只列出要求掌握的几种,不再罗列很多很多了。

计量经济学的基础工具

第2章计量经济学的基础工具 在第1章中定义了计量经济学的主要工具是数学,包括优化理论和统计分析。这些工具的基础知识是计量经济学的基础知识。尽管这些知识在所有的专业书籍中都可以找到,但是考虑到知识的连贯性和应用的便利,这里将以一章来介绍这些基本知识,以备那些需要的读者参考。关于矩阵部分,主要参考了Sydsaeter,Strom和Berch(2001)的文献,关于概率统计及其推断部分,主要参考了古亚拉提(2000)的文献,古扎拉蒂(2004),Sydsaeter,Strom和Berch(2001)以及王文中(2003)的文献。

第2章 计量经济学的基础工具 ·21· 2.1 矩阵 2.1.1 矩阵的定义 11 12 121 2221 2 n n m m mn a a a a a a a a a ?? ? ? = ? ? ??? L L L L L L L A 称为m n ?阶矩阵,其中a ij 称为位于矩阵的第i 行和第j 列的元素。简记()ij m n a ?=A 。当m n =时,称矩阵为n 阶方阵,A 称为A 的n 阶行列式。如果 0,1,≠?=?=? ij i j a i j 则称该方阵为n 阶单位矩阵,记为I 。有I =1。I 是对角矩阵的特殊形式。一般 的对角矩阵记为 1122diag{,,,}nn a a a =L A 并有 1122=L nn a a a A 矩阵()ij m n a ?=A 的名称是由其元素的变化决定的。比如,所有元素都为0的矩阵叫零矩阵,所有位于主对角线下面的元素均为0,则称A 为上三角矩阵,反之则叫下三角矩阵。定义 11 21112 22212?? ? ? = ? ? ??? L L L L L L L m m n n mn a a a a a a a a a B 为矩阵()ij m n a ?=A 的转置,记为'A 。当m n =时,如果'=A A ,A 称为对称矩阵;如果'=-A A ,A 称为反对称矩阵;如果2=A A ,则A 是幂等矩阵;如果2=A I ,则A 是对合矩阵;若'=A A I ,则A 是正交阵且1=±A ;如果0=A 或0≠A ,则A 称为奇异的或非奇异的。一个高阶矩阵,根据实际需要,可分成若干小块。比如()ij m n a ?=A 可分成四块: 11122122?? = ??? A A A A A

金融学1-15章测试题及其答案

搜索时不要带括号 1. 采取独资、合资或合作等方式在国外建立新企业的“绿地投资”属于( B )投资。、A. 国 际间接投资B. 国际直接投资C. 国际金融投资 D. 国际结算 2.现代金融体系建立的基础是( D. A和B )。 3. 各经济部门的金融活动及其彼此间的平衡关系可以通过( C资金流量表 )来反映。 4. 在市场经济条件下,发行( A. 政府债券)是财政最常用、最普遍的筹措资金方式。 5.( A信用证)属于贸易融资的行为。 1.发行股票属于( A)融资。: A. 外源融资 B. 内源融资 C. 债务融资 D. 债权融资 2.居民的赤字可以通过以下哪种方式弥补( B. 消费贷款 )。 3.居民进行储蓄与投资的前提是( C. 货币盈余 )。 4.现代社会中,不同的经济部门之间有的总体是盈余的,有的总体是赤字的,他们之间主要 通过( A金融 )活动来实现平衡。 5.从整体上看,( D )是最大的金融盈余部门。: A. 企业 B. 金融机构资 C. 政府 D. 居民 汇率变化常给交易人带来损失或盈利,下列( D. 黑客入侵外汇交易系统导致损失)不属于汇率风险。 目前人民币汇率实行的是( B. 以市场供求为基础的、参考一篮子货币进行调节、有管理的浮动汇率制)。 国际借贷说认为本币贬值的原因是( D. 流动债务大于流动债权)。 汇率自动稳定机制存在于( B. 国际金本位制下的)汇率制度。 在现行结售汇制度下,我国外管局每个交易日公布的汇率是( D. 中间汇率)。 汇率作为重要的金融价格,其变动会影响()。 或多项: A. 进出口 B. 物价 C. 资本流动

D. 金融资产的选择 属于早期汇率决定理论的是()。 或多项: A. 国际借贷理论 C. 利率平价理论 D. 汇兑心理说 E. 购买力平价理论 银行以不同方式卖出外汇时,下列正确的选项是()。 或多项: A. 电汇汇率是外汇市场的基准汇率 B. 信汇汇率低于电汇汇率 D. 票汇汇率低于电汇汇率 下列说法正确的是()。 或多项: A. 直接标价法下,外币的数额固定不变,本币的数额随币值变化 B. 直接标价法下,汇率越高,本币价值越低 E. 间接标价法下,汇率越高,本币价值越高 根据利率平价理论,下列说法正确的是()。 或多项: B. 利率高的国家货币在远期外汇市场上贴水 C. 利率低的国家货币在远期外汇市场上升水 E. 即期汇率与远期汇率相等时为平价 根据利率平价理论,利率与汇率的关系是:利率高的国家货币在远期外汇市场上升水,利率低的国家货币在远期外汇市场上贴水。错 汇率是两国货币的兑换比率,是一种货币用另一种货币表示的价格。对 布雷顿森林体系下的汇率制度是以黄金——美元为基础的、可调整的固定汇率制。对

高三地理学法指导精选文档

高三地理学法指导精选 文档 TTMS system office room 【TTMS16H-TTMS2A-TTMS8Q8-

一、单项选择题解法指导 要想确保基本分,获得高分,都必须在选择题下功夫。 (一)选择题的置疑特点 命题者为了减少考试得分的偶然性,提高考试的区分度,命题时一定会考虑并提高选择题的迷惑性。要提高解答的正确率与速度,就必须熟知选择题常见的置疑方法,做到知己知彼,百战不殆。 1.混淆概念 通过混淆相关概念,或利用考生对某些概念的模糊和片面认识来置惑诱错。 2.以偏概全 某些选项表述的知识点在特定的时间或地区内是正确的,但并不一定具有普遍性。 3.表述绝对化 选项中绝对化的表述大多是错误的,但有些绝对化的表述是正确的.。 4.定势诱惑 任何人都具有一定的思维定势。受习惯性思维的影响,很多考生很容易误入圈套,掉入陷阱。 5.误联因果 选择题中的因果关系有两种:一种是题干与选项之间的因果关系,另一种是选项本身具有的因果关系。解答这类试题时,一定要搞清楚其因果关系是否正确。 6.变式迷惑 变换试题的表现形式,如图文转换、形式变换或通过新情境的干扰来增加试题的迷惑度。 7 .隐含信息 这类试题的关键信息往往隐含在题干或地理图表中,如果没有把握住题干或图表中的关键信息,必定导致答案错误。 9.前后矛盾(正误同项)

本身的叙述是正确的,但与题干无关,所以也是错误答案。 2.认真筛选 “认真筛选”是指依据题进行认真推敲。可以通过对现象特征的对比分析来掌握知识之间的区别与联系,明确选项与题干的关系。根据限定语,得出题干中的引申义,对地理特征、现象进行纵横对比,正反区分,明确现象发生的区域与时限。一般来说,可以有这样三次筛选: 第一次筛选,即“排错项”。在审清题肢的基础上,排除有知识性错误、观点错误的题肢。 第二次筛选,即“排异项”。常针对有多项条件限制的题型,虽然题肢观点或内容本身正确,但与题干的规定性无关,这种试题选项的干扰性比较大,是否排除的唯一标准是“是否符合题意”。做好“第二次筛选”的关键是要仔细分析每个选项和题干的联系,以题干给定的条件为“筛子”,对选项逐一进行筛选,检查验证,弃误留正,得出正确答案。 第三次筛选,即“选最符合题意项”。在单项选择题中出现两个或两个以上答案时,要坚持“以干求肢”的解题原则,以题干的规定性为准绳,逐一分析题肢,选出最能与之“挂钩”的选项,即“最符合题意”的题肢,排除其余相关但不相符的题肢。 3.果断确定 第一,相信直觉。在仔细审题的前提下,相信自己的第一感觉。做出选择后不要轻易改动,如果经过一番考虑后,仍然不能确定正确选项,就先选上一个最有可能的选项,然后打上问号,等做完全部试题后,再对有疑问的地方作重点检查。假如在检查的时候还不能有把握地确定正确选项时,就选一开始选的那个!”如果过分推敲,受心理暗示的影响,反而会怀疑正确的选项。 第二,不要空题。当你实在确定不了正确选项的时候,单选题就要选择其中的一项作为正确答案,双选题选择其中的两项作为正确答案(选择一项是不可能得分的)。 第三,不能多选。如果发现有超过规定数量以上的答案,应该按照第2点的筛选顺序认真进行筛选得到符合题意的答案。还应注意题目是否是要求选择不正确或错误的选项。 第二部分综合题解法指导 解题第一步--审题 审题是应试第一关。“审”就是阅读、琢磨、推敲。审题的目的是理解题意、明确问题。实质就是领会或揣摸命题人的意图。其能力要求是获取有效信息。 审题要领:圈点关键词语、重视隐性信息、确定问题指向(规定动作要到位) (一)审题型。审清题目是叙述性问答题,还是分析性问答题;是简答题,还是论述题。注意“是什么”、“为什么”、“怎么办”之间的区别,避免出现错答。 简述——简单扼要叙述,须把握要点。

Photoshop学用基本绘图工具教学设计

单元(章)教学设计 初一信息 授课时间: 2017 年 9月1 日至9月24日 第二课学用基本绘图工具 教学目标: 1、知识与技能 (1)学会新建空白图像 (2)初步学会使用渐变,文字,移动,矩形选框,油漆桶,喷枪等工具 2、过程与方法 通过学会“渐变”和“添加文字”工具、制作简单的广告牌,了解渐变和添加文字工具的用途,学会制作图像的一般方法,从而总结归纳制作图画步骤和方法。 3、情感态度与价值观 培养学生热爱大自然,树立保护环境的意识 教学重点: 学会使用渐变,添加文字工具 教学难点: 了解制作图画的基本思路和方法 课时: 1课时 教学准备: 网络机房、视频文件等 教学过程: 一、课堂引入 展示图片——在校园中拍摄的系列绿化牌。 为了美化环境、提醒同学们不要乱踩塌花园草地,学校制作了类似的绿化牌。这节课我们用phtoshop中的绘图工具来制作这样的绿化牌。 二、作品分析 1、渐变背景:为了美化绿化牌的背景,用渐变工具填充;

2、文字效果:添加文字工具 三、操作步骤 1、设置颜色 把前景色设为银灰色,背景色设为深绿色。单击工具箱中的前景色,背景色色标,弹出“拾色器”时,选定一种颜色。 2、新建一幅空白图像 执行“文件—新建”命令,高度设为10厘米,宽度设为12厘米,分辨率设为72。 1、选定一个矩形区域 选择工具箱中的矩形选框工具,然后选定一个矩形区域。 4、选择工具箱中的油漆桶工具 单击“油漆桶工具”选项,选择油漆桶工具。 5、填充颜色 在选定的区域内单击,填充银灰色(前景色)。 操作提示:填充颜色时,操作有误或对填充色不满意,可以“ctrl+z”键撤消所作的操作。 6、取消选定区域 执行“选择—取消选择”命令,可以取消选定区域。 7、再选定一个矩形区域 利用矩形框工具来画出一个矩形区域。 8、选择画笔工具 选择画笔工具后,单击属性选项,设置“主直径”为10像素。 9、画矩形框的边框阴影 1)把前景色设为白色后,按住SHIFT键,依次单击选定区域的左下角、右下角、右上角,画出一条白色折线。 2)把前景色设为黑色后,按住SHIFT键,依次单击选定区域的右上角、左上角、坐下角,画出一条黑色的折线。 10、画支柱

办公软件教程(含wordexcelppt)-从零基础学起

办公软件教程-从零基础学起 Office XP主要包括:字处理软件Word、Excel、PowerPoint等应用程序。它们具有统一的界面、相似的常用工具栏及大同小异的操作方法,只是各自的侧重点有所不同。 Word是文字处理软件。它集成文字处理、表格处理和图形处理于一体,汇集了对各种对象的处理工具,使图片、图表、表格、艺术字等的处理得心应手。 Excel是以表格化数据处理为基础的集成化处理软件。它不但能实现电子表格数据处理,也具有数据库管理、统计图表自动生成等功能。 PowerPoint是创作电子演示文稿的软件。利用它可以方便地制作出集文字、图形、图像、声音、视频和动画于一体的多媒体演示文稿。 一、Word特点

1.对文档提供了多种查看方法; 如:普通视图、页面视图、大纲视图、Web版式视图、文档结构图、全屏显示、Web页预览、打印预览等。 2.具有专业级的表格处理功能; 3.使用方便的多栏彩色图文混排、艺术字处理; 4.具有功能很强的数学公式编辑器; 5.具有多种类型文件的转换功能。 二、窗口介绍 菜单栏、常用工具栏、格式工具栏、正文编辑区、状态栏、标尺、滚动条等。 注:工具栏的显示与隐藏(视图→工具栏→各种工具栏。) 三、页面设置:“文件”→“页面设置”。 1.纸张的大小(常用的纸张:A3、8K、B4、A4、16K、B5。) 2.设置页边距:调整正文到纸张边界[2] []大2小。 四、文档编辑 1.建立文档(Ctrl + N) (1)录入文字,录入时不要排版,每()1一段敲一次回车,每段前空两个汉字位置。(2)特殊符号录入:“插入”→“符号”或用动态键盘。 (3)显示/隐藏文档中的非打印符号。 2.保存文档 (1)保存(Ctrl + S) (2)另存为 3.打开和关闭文件(打开:Ctrl + O) 4.文档选择基本方法 (1)拖动选择

地理必修二学习方法指导

学法指导: 地理学习方法指导 一、学会阅读理解地理教科书 1.抓“概念”重“消化”。在学习地理时,要重视概念的学习,要对所有的地理概念一一消化、理解、吸收,不留夹生饭。只有概念清楚了,判断、推理问题才能正确无误。要把那些特别容易混淆的概念罗列出来,一一对比其差异。当然,概念学习不是孤立的,要在分析和解决问题的过程中进行。 2.抓“原理”重“理解”。从基础知识抓起,扎扎实实,一步一个脚印地过“地理原理”关。掌握了原理、法则和规律,分析事物就有了说服力做就能做到举一反三,就能概括同类地理事物的一般特点和规律。 3.总结和归纳,掌握地理学习的规律。将知识整理归纳形成主干,构建自己的“思维导图”。思维导图是指用联系的方法来表达人们头脑中的概念、思想和理论等,是把隐性的知识显性化、可视化,便于思考、交流与表达。它是由节点、连线组成的知识网络图,其中节点表示概念,连线表示概念之间的联系,用节点和连线组成的网络知识结构表示某一个主题及其层次。 二、学会阅读和使用地图 1.“图文结合易学好记”。学习时要做到看书与看图相结合,将地理知识逐一在图上查找落实,熟记;平时要多看地图(还可以填图、绘图),“图不离手”,把地图印在脑子里,并能在图上再现知识。这样,当我们解答地理问题时,头脑中就能浮现出一幅形象、清晰的地图,于是,我们就可以从中准确而有效地提取需要的信息,从容作答,即形成“脑图”。 2.抓“读图”明“空间”。地图具有形象、直观的作用,可以培养观察力、想象力,发展思维能力和记忆能力,可以进一步明了地理事物的空间分布、空间联系、空间组合。 3.地图学习要学会分类、读图、变图、用图。 (1)学会分类。包括日照图、统计图表、地形剖面图、地质图、景观图、原理示意图、漫画图、数据图、结构图、等值线图等。 (2)学会读图。读图要注意先后顺序,①先读图的主题,即图名;②看清图例、比例尺和方向;③注意细节,知道该图表现的主要内容、范围等,再观察图的具体内容,观察要仔细全面,不要漏掉每一个信息;④联系实际,学会变图,如图图转换(剖面图转换为平面图),图文转换等。 (3)学会用图。如用图归纳总结地理规律或特点,用图记忆等。用图记忆就是记的时候,应该直接把文字放到图上记,当涉及到这个知识点的时候,你的脑子里反映出来的是有文字的图片而不单是文字,你便可以象读图一样回答各种问题了,不管是文字题还是读图题都可以解决。 三、注重学习的几个环节 学习地理与学习其它科目一样,要注重学习的几个环节:预习、上课、练习、复习,特别是容易忽略的预习、复习两个环节。根据记忆规律,课前预习和课后复习也是很有必要的,通过预习可以提前知道教材内容概貌和自己不懂之处,便于上课分配注意力,把精力最旺盛的时间放在重难点上。学习地理决不能等全部学完后再回头复习,这样你是决不会理解课本知识的,你会发现学地理很难。可是如果你把地理当天的内容当天就理解消化,那就又是另一番景象了。你每理解一点知识就在你脑子里更明确一些,日积月累就会培养成为你的地理思维,那么学习地理就会易如反掌了。 四、收集信息理论联系实际 现代社会是个信息社会,生活中处处蕴含着信息,如电视新闻、报刊杂志、媒体网络、旅游科技、综艺体育等,经常为人们提供大量的知识信息,这些信息中很多是人们普遍关心的鲜活生动的地理知识和敏

画图工具的综合运用教学设计

画图工具的综合运用 一、教学目标 1、情感态度与价值观: 培养学生的信息技术与美术整合能力和环保意识;培养学生与人合作、互相启发、自主探究、团结合作,开展小组协作学习的习惯;培养学生创新精神和探究意识,提高学生的审美能力,提高学生的分析能力和语言表达能力。 2、知识与技能: 学会使用基本绘图工具的操作;能综合运用所学知识创作图画作品。 3、过程与方法: 通过情景创设,激发学生的学习和制作热情; 通过自主探究、小组协作交流,掌握绘图工具的使用技巧; 通过以“画图”软件自带的“帮助”为学生解决学习的问题,培养学生信息技术课程中遇到难题时,能通过“帮助”解决问题;能根据电脑绘图作品的评价标准,对自己和他人的作品进行简单的评价。二、教学过程 导入 师:同学们,上课前我们先来欣赏一幅作品,这是我们学校的同学参加电脑绘画比赛的作品,你觉得怎样呢?你能说出他都使用了哪些画图工具呢?(展示作品) 其实这些画图工具我们都已经学习过了,你们都来复习一下我们都学过了哪些画图工具,你们还记得他们的使用方法吗?

今天我们利用电脑画图工具创作吧!(板书课题:画图工具的使用)(播放音乐) (板书课题:画图比创意) 1、布置任务 1)我们需要绘画哪几个部分 2)需要使用哪些画图工具进行绘画创作 3)使用什么方法进行绘画是最简便的 4)怎样能使我们画的更漂亮、更活泼、更有个性 2、成果交流 师:你能将自己想到的方法与大家一起交流吗? 师:同学们的方法真好!其实,我们还可以使用大小不一、形状不同的图形能组合出丰富的花纹和图案,这也是最简便的绘画方法。1、归纳画步骤,并找出可使用的画图工具有哪些。 1)画身体 2)加颜色 2、利用图形的组合创作花纹 3、夸张、添加、变形、添加表情…… 三、教师评价作品展示 师:同学们,你们真棒!能用鼠标把把画板打扮得这么漂亮。其实,我们还能使用电脑画图软件画出内容更丰富的图画(展示学生作品),只要我们继续努力也能达到更高的水平。 下节课,我们继续进行电脑画图的创作,好吗?

天正建筑基础教程

天正建筑8基础教程 (四) 第七章立面 一、立面的概念 设计好一套工程的各层平面图后,需要绘制立面图表达建筑物的立面设计细节,立剖面的图形表达和平面图有很 大的区别,立剖面表现的是建筑三维模型的一个投影视图,受三维模型细节和视线方向建筑物遮挡的影响,天正立面图 形是通过平面图构件中的三维信息进行消隐获得的纯粹二维图形,除了符号与尺寸标注对象以及门窗阳台图块是天正自 定义对象外,其他图形构成元素都是AutoCAD的基本对象。 立面生成与工程管理: 立面生成是由【工程管理】功能实现的,在【工程管理】命令界面上,通过新建工程->添加图纸(平面图)的操作 建立工程,在工程的基础上定义平面图与楼层的关系,从而建立平面图与立面楼层之间的关系,支持两种楼层定义方式: 1.每层平面设计一个独立的DWG文件集中放置于同一个文件夹中,这时先要确定是否每个标准层都有共同的对齐点, 默认的对齐点在原点(0,0,0)的位置,用户可以修改,建议使用开间与进深方向的第一轴线交点。事实上,对齐点就是DWG作为图块插入的基点,用ACAD的BASE命令可以改变基点。 2.允许多个平面图绘制到一个DWG中,然后在楼层栏的电子表格中分别为各自然层在DWG中指定标准层平面图, 同时也允许部分标准层平面图通过其他DWG文件指定,提高了工程管理的灵活性。 软件通过工程数据库文件(*.TPR)记录、管理与工程总体相关的数据,包含图纸集、楼层表、工程设置参数等,提 供了“导入楼层表”命令从楼层表创建工程,在工程管理界面中以楼层下面的表格定义标准层的图形范围以及和自然层 的对应关系,双击楼层表行即可把该标准层加红色框,同时充满屏幕中央,方便查询某个指定楼层平面。 为了能获得尽量准确和详尽的立面图,用户在绘制平面图时楼层高度,墙高、窗高、窗台高、阳台栏板高和台阶 踏步高、级数等竖向参数希望能尽量正确。 立面生成的参数设置: 在生成立面图时,可以设置标注的形式,如在图形的哪一侧标注立面尺寸和标高;同时可以设置门窗和阳台的式样,其方法与标准层立面设置相同;设定是否在立面图上绘制出每层平面的层间线;设定首层平面的室内外高差;在楼 层表设置中可以修改标准层的层高。 需要指出,立面生成使用的“内外高差”需要同首层平面图中定义的一致,用户应当通过适当更改首层外墙的Z 向参数(即底标高和高度)或设置内外高差平台,来实现创建室内外高差的目的,立面生成的概念如图所示。 二、立面的创建 * 建筑立面 本命令按照【工程管理】命令中的数据库楼层表格数据,一次生成多层建筑立面,在当前工程为空的情况下执行

计算机常用工具软件学习

计算机常用工具软件学习一个好的软件,除了给我们带来效率更重要的是为我们带来了快乐。下面我给大家介绍几款实用软件。 一、文件处理软件 软件名称:WinRAR 4.01 简体中文版 support 主要功能: 压缩文件 使用方法: 1.安装与卸载 winRAR的一般下载文件名为wzbeta32.exe,下载后运行该文件,按照系统的提示,选择安装路径、设置界面风格等,一般来说,一路“Enter”即可,winRAR就以默认方式安装到你的电脑上了。如果你觉得winRAR用起来不方便、不习惯,想卸掉它,你可以通过“开始=>程序=>WinRAR=>Uninstall WinRAR”或者通过控制面板的“添加/删除程序”来卸

载它。 2.启动 winRAR安装完成后,会在桌面、开始菜单和文件右键快捷菜单等处设置多种快捷启动方式,并与压缩包建立关联,压缩包的图标也将自动替换成winRAR的图标,以后双击压缩包就可方便地调用WinRAR为你打开压缩包,帮你工作了。 3.新建压缩包 启动winRAR后,让我们先来试试新建立一个压缩包。在标准界面窗口下,鼠标单击程序界面按钮工具条中的“New”,在弹出“New Archive”对话框中设置新建压缩包的名称、压缩的格式(注意,新建立的是空压缩包)等,选择“Add Dialog”复选框(如图4),单击OK,然后就可以在“Add from”列表框中选择需进行压缩打包的文件和文件夹,按“Add”按钮将其添加压缩到刚才建立的空压缩包中了。如果要压缩当前目录下列出的全部文件,点击“Add with wildcards”按钮;如果要保留压缩对象的目录结构,选择使用“Folders”项中的“Save extra folder info”复选框;如果要压缩文件夹及其下的子文件夹,选择“Include subfolders”复选框;要压缩文件夹中隐藏的文件,选择Attributes项中的“Include system and hidden files”复选框。在资源管理器窗口中,使用鼠标右键单击需进行压缩的文件夹,在弹出的菜单中选择“Add to RAR”命令,程序会弹出“Add”对话框,通过这种方式,也可以新建一个压缩包。 4.压缩包的解压 在查看压缩包中的文件时,我们可以在压缩包文件列表窗口中选择需进行解压的文件,点击界面中的“Extract”按钮,进行部分或全部文件的解压。大部分时候,我们不需要打开压缩包的文件,只需要使用鼠标右键单击需要解压的压缩包,然后在弹出的右键菜单中选择“Extract to…”选项,WinRAR将自动启动并让你制定解压后文件的存放文件夹,在弹出的右键菜单中一般还有一项“Extract to+压缩包当前目录/压缩包文件名”的选项,如果选择这一项的话,你就什么都不用费心了,WinRAR将在压缩包当前目录中建立一个新的文件夹,并将压缩包中的文件解压到这个新的文件夹中。 5.文件直接压缩成E-mail附件 为了适应网络对于压缩文档的需求,WinRAR在你选择一些文件或文件夹并单击鼠标右键时会增加一个选项“RAR and E-Mail…”(如图6),选中这个选项,它会自动压缩该文件,并打开默认的电子邮件程序新建一封信件,然后把该压缩包作为一个附件插入,这是以前版本的WinRAR所没有提供的功能。如果想将文件压缩后用电子邮件进行传送,保证你非常喜欢这个功能,因为它简直太方便了。 6.分卷压缩 虽然现在使用软盘的机会很少了,不过WinRAR的分卷压缩功能却一点没有减弱。在建立新的压缩包时,我们在创建压缩包所在盘时选择软盘盘符a:,然后在“Multiple Disk Spanning”下拉文本框中设置分卷压缩方式。其中“Automatic”项自动检测软盘可用空间,并进行分卷压缩文件的创建,一般选择此项。“Automatic +wipe first disk prompt”项自动检测软盘的可用空间,并进行分卷压缩文件的创建。在进行压缩时,提示用户是否删除软盘中已有的数据。在压缩过程中,当一张软盘满了时,WinRAR会提示插入下一张软盘。 二、汉化与翻译软件 软件名称:谷歌金山词霸合作版 2008 V1.186

高中地理学法指导

高中地理学法指导 一、明白学习地理有何意义 地理学是研究地理环境以及人类活动与地理环境相互关系的一门科学。地理学主要涉及上至宇宙空间,下到地球内部,还有我们生活的人类社会,这些都是地理环境的重要组成部分,也都属于地理学的研究范畴。同时,不同地区,地理环境是不同的。地理学研究的正是地理环境的差异、分布规律及其成因。除此之外,地理与人们的生活密切相关,我们可以在生活中观察到许多有趣的地理现象,在生活中学到许多有用的地理知识;反过来,我们还可以运用所学的地理学理论指导我们的实践活动。不仅如此地理学在现代科学中占有重要地位,对于解决当今世界所面临的人口、资源、环境和发展等问题起着重要作用。所以,地理课对于提高中学生的综合素质具有非常重要的意义,学好地理很有必要。 二、明确高中地理的学科特点 既然地理如此重要,我们怎样才能学好地理呢?有些同学认为,地理不难,关键是记性好,只要死记硬背就行;还有的同学认为地理课没意思,除了背还是背。那为什么考不出高分呢?这就是没有搞清楚高中地理学什么的问题。那么,高中地理到底有什么特点呢?要想学好地理,首先要对高中地理的学科特点有一个比较正确的认识。高中地理的学科特点主要可概括为以下几个特点: 1.学习的侧重点是掌握“有什么规律?”“为什么?”“怎么办”的问题。 初中地理更多的是学习“在什么地方?”“有什么样的事物”“有什么特点”等问题,因此不可避免的涉及大量的记忆性的内容,因此其学习方法的侧重点就是解决怎样科学地、高效地记忆这些地理事实材料。 而高中地理侧重解决的是地理事物的规律及其对人类生产生活的影响,通过探究这些规律的形成原因来为形成人类的相应对策服务。也就是说,应侧重于通过多因素的综合分析、归纳那些繁杂的地理事实材料,从中推导出一些规律,从本质上掌握其成因,最后形成人类生产生活的相应对策。可见,高中地理的学法核心是理解而非记忆,是应用而非记忆。 2.高中地理具有表现为以人地关系为主线的显著特点,几乎所有的地理问题都跟人类的生产、生活有着密切的关系,学习地理必须紧扣这条主线。 3.许多地理问题都有知识与能力的跨学科特点。部分地理主要与数学、物理、生物学科联系较多,部分地理主要与政治联系较多。 其实,地理环境的发展变化是有规律的,人类活动与地理环境之间的关系也是有规律可寻的,地理学也有自己独特的学习方法和技巧。 好的学习方法能起到事半功倍的效果,但是学习方法因人而宜。因为每个人的知识基础不同,思维品质不同,生活的感性经验不同,因此几乎不可能找到一种能适合所有人的最佳学习操作模式,所以学习方法的具体操作方式只能是因人而异。因此,我们只

PS基础知识入门学习

PS基础知识入门学习 熟悉界面 打开素材中的手提袋图片,可以看到Photoshop的六大界面: 1.需要处理的图像窗口; 2.菜单栏:可以选择其中的命令以对图形进行操作; 3.左边是工具箱:其中是各种绘制图形的工具和辅助工具; 4.工具选项栏:选择绘图工具后可以在这里选择各项参数; 5.右边是各种工作面板:在其中可以对图像进行各种操作; 6.最下面是状态栏:显示了当前对图像进行操作时的各种信息。 绘图与修图技能 1. 工具的使用方法 1)工具箱是工具大体可以分为:选取工具、绘图工具、路径工具、文字工具以及其他的一 些辅助工具。不同工具的使用方法都相似,这里我们使用制作青苹果这个例子来掌握它们的使用方法,效果图如下: 2)新建一个大小600×450像素、名为“青苹果”的图像文件。

3)建立一个图层,建立圆形选区。 4)设置渐变工具。在渐变编辑器中将左端色标设置为(R16,G69,B13),再增加新色标: (R89,G128,B42)位置17%,依次增加其他新色标:(R171,G214,B76)位置36%,(R131,G185,B49)位置55%,(R82,G118,B28)位置74%,(R108,G154,B38)位置100%

5)在工具选项栏中选择径向渐变按钮,在选区中从左上方进行填充。 中选中“动态形状”、“喷枪”和“其他动态”,把“其他动态”设置如下图:

7)工具栏中设置前景色为深棕色后用画笔工具画出苹果柄。 8)用减淡工具绘制苹果的高光。在工具选项栏中选择一种画笔,设置范围为“高光”,曝光 度为“16%”,在苹果上绘制出高光部分,取消选择。 9)最后绘制出投影部分。图层选项设置如下:

相关文档
相关文档 最新文档