常见Lingo指令介绍
- 格式:doc
- 大小:76.00 KB
- 文档页数:9
常见Lingo指令介绍常见Lingo指令介绍一、控制Sprite的常见指令1.指令名称:sprite member指令语法:the member of sprite指令说明:sprite所代表的cast member。
例:精灵替换set the member of sprite 1 to "yuan"可改为:Sprite(1).member=”yuan”点句表示法:ObjectName.[Property|function|Chunk that you want to specity]2.指令名称:sprite memberNum指令语法:the memberNum of sprite指令说明:sprite所代表的cast member所在的位置。
例:循环播放on exitFrame meif sprite (1). memberNum =10 thensprite (1). memberNum = 1elsesprite (1) .memberNum=sprite(1).memberNum+1end ifgo to the frameend3.旋转、倾斜、翻转精灵指令说明:这些变换可以应用于位图、文本、矢量图形、GIF及Flash,但不能用于域,以及工具面板上的椭圆和矩形。
(1)旋转:正值代表顺时针,负值代表逆时针sprite(1).rotation=30set the rotation of sprite 1 to 30例:指针调节sprite(1).rotation=sprite(1).rotation+5(2)倾斜:正值向右倾斜,负值向左倾斜,正常状态为0sprite(1).skew=10set the skew of sprite 1 to 10例:图形变形sprite(1).skew=sprite(1).skew+10(3)翻转:左右(水平)翻转flipH,上下(垂直)翻转flipV,设置值为TRUE或FALSE (1或0)sprite(1).flipH=TUREsprite(1).flipV=1例:翻转与恢复指令说明:相当于sprite在stage上的透明度,值可从0到100,数值越小透明度越高。
Lingo基本用法总结LINGO是用来求解线性和非线性优化问题的简易工具。
Lingo免费版可以支持30个未知数,lingo破解版可以支持几万个未知数、几万个约束条件。
当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。
在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。
然后点击工具条上的按钮即可。
算术运算符Lingo中变量不区分大小写,以字母开头不超过32个字符算术运算符是针对数值进行操作的。
LINGO提供了5种二元运算符:^乘方﹡乘/除﹢加﹣减LINGO唯一的一元算术运算符是取反函数“﹣”。
这些运算符的优先级由高到底为:高﹣(取反)^﹡/低﹢﹣运算符的运算次序为从左到右按优先级高低来执行。
运算的次序可以用圆括号“()”来改变。
数学函数标准数学函数:@abs(x) 返回x的绝对值@sin(x) 返回x的正弦值,x采用弧度制@cos(x) 返回x的余弦值@tan(x) 返回x的正切值@exp(x) 返回常数e的x次方@log(x) 返回x的自然对数@lgm(x) 返回x的gamma函数的自然对数@sign(x) 如果x<0返回-1;否则,返回1@floor(x) 返回x的整数部分。
当x>=0时,返回不超过x的最大整数;当x<0时,返回不低于x的最大整数。
最大最小函数:@smax(x1,x2,…,xn) 返回x1,x2,…,xn中的最大值@smin(x1,x2,…,xn) 返回x1,x2,…,xn中的最小值边界限定函数:@bin(x) 限制x为0或1@bnd(L,x,U) 限制L≤x≤U@free(x) 取消对变量x的默认下界为0的限制,即x可以取任意实数@gin(x) 限制x为整数辅助函数1.@if(logical_condition,true_result,false_result)@if函数将评价一个逻辑表达式logical_condition,如果为真,返回true_ result,否则返回false_result在默认情况下,LINGO规定变量是非负的,也就是说下界为0,上界为+∞。
LINGO WINDOWS命令5.1 文件菜单(File Menu)1.1.新建(New)从文件菜单中选用“新建”命令、单击“新建”按钮或直接按F2键可以创建一个新的“Model”窗口。
在这个新的“Model”窗口中能够输入所要求解的模型。
2.2.打开(Open)从文件菜单中选用“打开”命令、单击“打开”按钮或直接按F3键可以打开一个已经存在的文本文件。
这个文件可能是一个Model文件。
3.3.保存(Save)从文件菜单中选用“保存”命令、单击“保存”按钮或直接按F4键用来保存当前活动窗口(最前台的窗口)中的模型结果、命令序列等保存为文件。
4.4.另存为...(Save As...)从文件菜单中选用“另存为...”命令或按F5键可以将当前活动窗口中的内容保存为文本文件,其文件名为你在“另存为...”对话框中输入的文件名。
利用这种方法你可以将任何窗口的内容如模型、求解结果或命令保存为文件。
5.5.关闭(Close)在文件菜单中选用“关闭”(Close)命令或按F6键将关闭当前活动窗口。
如果这个窗口是新建窗口或已经改变了当前文件的内容,LINGO系统将会提示是否想要保存改变后的内容。
6.6.打印(Print)在文件菜单中选用“打印” (Print)命令、单击“打印”按钮或直接按F7键可以将当前活动窗口中的内容发送到打印机。
7.7.打印设置(Print Setup...)在文件菜单中选用“打印设置...”命令或直接按F8键可以将文件输出到指定的打印机。
8.8.打印预览(Print Preview)在文件菜单中选用“打印预览...”命令或直接按Shift+F8键可以进行打印预览。
9.9.输出到日志文件(Log Output...)从文件菜单中选用“Log Output...”命令或按F9键打开一个对话框,用于生成一个日志文件,它存储接下来在“命令窗口”中输入的所有命令。
10.提交LINGO命令脚本文件(Take Commands...)从文件菜单中选用“Take Commands...”命令或直接按F11键就可以将LINGO命令脚本(command script)文件提交给系统进程来运行。
Lingo介绍Lingo是美国LINDO系统公司(Lindo Symtem Inc)开发的求解数学规划系列软件中的一个(其他软件为LINGDO,GINO,What’s Best等),它的主要功能是求解大型线性、非线性和整数规划问题,目前的版本是lingo11.0。
lingo分为Demo、solve suite、hyper、industrial、extended等六类不同版本,只有Demo版本是免费的,其他版本需要向LINDO系统公司(在中国的代理商)购买,Lingo的不同版本对模型的变量总数、非线性变量个数、整型变量个数和约束条件的数量做出不同的限制(其中extended版本无限制)。
Lingo的主要功能特色为:(1)既能求解线性规划,也有较强的求解非线性规划的能力;(2)输入模型简练直观;(3)运行速度快、计算能力强;(4)内置建模语言,提供几十种内部函数,从而能以较少语句,较直观的方式描述较大规模的优化模型;(5)将集合的概念引入编程语言,很容易将实际问题转换为Lingo语言;(6)能方便地与excel、数据库等其他软件交换数据。
学校图书馆40本《lingo和excel在数学建模中的应用》,袁新生、邵大宏、郁时炼主编,科学出版社Lingo程序设计简要说明在数学建模中会遇到如规划类的题型,在这种模型中总存在着一个目标,并希望这个目标的取值尽可能的大或小,同时与这个目标有关的一系列变量之间存在一些约束。
在构造出目标函数和约束条件的表达式后,我们需要对求出这个最值和各变量的取值。
一般我们用LINGO来对模型进行求解,本文将通过举一个简单的例子,围绕这个例子逐步学习LINGO 的使用。
LINGO只是一个求解工具,我们主要的任务还是模型的建立!当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。
在主窗口内的标题为LINGO Model –LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。
lingo中links用法在Lingo中,"links"是一个很常见的命令,用于创建和管理不同部分之间的链接或关联。
具体用法如下:1. 创建链接:使用"links"命令可创建一个链接,将一个对象与另一个对象关联起来。
例如,要将对象A与对象B关联起来,可以使用以下命令:```links(A).to(B)```这将创建一个从对象A指向对象B的链接。
2. 检查链接:可以使用"links"命令检查两个对象之间是否存在链接。
例如,要检查对象A和对象B之间是否存在链接,可以使用以下命令:```links(A).has(B)```如果存在链接,则返回true;否则返回false。
3. 获取链接的数量:可以使用"links"命令获取某个对象所拥有的链接的数量。
例如,要获取对象A的链接数量,可以使用以下命令:```links(A).count```这将返回与对象A相关的链接的数量。
4. 获取链接的目标对象:可以使用"links"命令获取某个对象链接的目标对象。
例如,要获取对象A的链接的目标对象,可以使用以下命令:```links(A).target```这将返回与对象A链接的目标对象。
5. 删除链接:使用"links"命令可以删除两个对象之间的链接。
例如,要删除对象A与对象B之间的链接,可以使用以下命令:```links(A).remove(B)```这将删除从对象A指向对象B的链接。
请注意,上述示例中的"A"和"B"是用作对象的占位符。
您可以将其替换为实际的对象名称或引用。
常用的Lingo语句一、常用的Lingo命令尽管在Lingo中有700多条命令,但是在编写Lingo剧本时,经常用到的Lingo命令并不是很多,下面简单介绍一下常用的一些Lingo命令。
1.go这是一个在Director中非常常用的命令,在前面的制作中我们曾经不只一次用到它,它的用法也比较多,主要包括下面一些情况:go to Frame [FrameNumber]:跳转到帧。
go to [FrameNumber]:go [FrameNumber]go to movie “[MovieName]”go movie “[MovieName]”go to Frame “[MarkerName]”go to “[MarkerName]”go “[MarkerName]”go to Frame [FrameNumber] of movie “[MovieName]”go to [FrameNumber] of movie “[MovieName]”go [FrameNumber] of movie “[MovieName]”go loopgo nextgo previous在上面的表达式中,[ ]中的内容表示这里要用相应的内容替换,以下都采用这种方式。
其中,[FrameNumber]表示帧的序号,[MovieName]表示影片的名称(包括路径或Internet网址),[Markername]表示标记名称。
这几个命令所要表达的是当发生某个事件时,影片的播放位置将跳转到某一帧,或者跳转到某指定标记的帧,或者跳转到某部影片,或者跳转到某一影片中的某一帧。
最下面的三个命令可以使影片循环播放、前进或倒退。
2.setset也是一个经常用到的命令,它的用法可以包括下面四种情况:set the [LingoProperty] to [expression]set the [LingoProperty=expression]set [variable=expression]3.playplay的用法如下:play frame [FrameNumber]play [FrameNumber]play movie “[MovieName]”play frame [FrameNumber] of movie “[MovieName]”play Sprite [FlashSpriteNumber]上述命令分别表示播放指定的帧,播放指定的影片,播放指定影片中的某一帧,播放指定通道中的Flash影片。
Lingo 的运算符 1、Lingo 的运算符运算符是任何一种语言中最基本的要素,它可以帮助变量值达到运算、比较、分配等功能,所以优先来介绍它。
一般来说运算符不外具有计算、比较等功能,而在Lingo中,有很多运算符是与现实生活中的符号相同的,请参考表1。
表1: # 定义符号- 负号-- 说明符号& 连接两字串&& 连接两字串,但在两字串之间加入一个空格键* 乘号+ 加号/ 除号- 减号< 小于<= 小于等于<> 不等于= 等于> 大于>= 大于等于[ ] 阵列符号连接两行的指令为同一表达式 ( ) 括弧#符号语法: #symbol Name 定义一个符号,这个符号在Director中,是另外一种对象的类型,与字串、整数、浮点数等类似。
使用符号的原因是因为它的速度比字串来得快,所以可以利用符号代替字串,通常在#之后可接一个名称,例如: #newType 这表示有一个符号为newType,事实上它可以当作是一个值,是指定给某一个变量的,例如: put #newType into newType 这表示将#newType 这个值放在变量newType 之中。
符号可以与阵列配全着一起使用,例如: [#a:1, #b:2, #c:3] 这就表示一个含有内容的阵列property list,其中的项目是一个符号对应一个数值。
可以视符号为这个数值的描述文字,与字串比较起来,符号的处理速度比较快,所以某些时候选择符号是比较好的做法。
当然不一定非这样用不可,但是符号的确是一个很方便的工具。
-符号语法: -expression 算术符号中的负号。
它的功能是可以将某个数值变为负数,具有算术式中的减号性质。
--符号语法: --[comment] 在编写程序时希望为程序加上说明的文字,以便以后的维护工作,如图1所示。
图1就是一个很好的例子,因为在指令的最前面记录着程序的编写者及编写的时间。
常见Lingo指令介绍一、控制Sprite的常见指令1.指令名称:sprite member指令语法:the member of sprite指令说明:sprite所代表的cast member。
例:精灵替换set the member of sprite 1 to "yuan"可改为:Sprite(1).member=”yuan”点句表示法:ObjectName.[Property|function|Chunk that you want to specity]2.指令名称:sprite memberNum指令语法:the memberNum of sprite指令说明:sprite所代表的cast member所在的位置。
例:循环播放on exitFrame meif sprite (1). memberNum =10 thensprite (1). memberNum = 1elsesprite (1) .memberNum=sprite(1).memberNum+1end ifgo to the frameend3.旋转、倾斜、翻转精灵指令说明:这些变换可以应用于位图、文本、矢量图形、GIF及Flash,但不能用于域,以及工具面板上的椭圆和矩形。
(1)旋转:正值代表顺时针,负值代表逆时针sprite(1).rotation=30set the rotation of sprite 1 to 30例:指针调节sprite(1).rotation=sprite(1).rotation+5(2)倾斜:正值向右倾斜,负值向左倾斜,正常状态为0sprite(1).skew=10set the skew of sprite 1 to 10例:图形变形sprite(1).skew=sprite(1).skew+10(3)翻转:左右(水平)翻转flipH,上下(垂直)翻转flipV,设置值为TRUE或FALSE (1或0)sprite(1).flipH=TUREsprite(1).flipV=1例:翻转与恢复指令说明:相当于sprite在stage上的透明度,值可从0到100,数值越小透明度越高。
Sprite(1).blend=50Set the blend of sprite 1 to 50例:图像渐淡sprite(1).blend=505.指令名称:loc、locH、locV指令说明:the loc of sprite:sprite当前的位置,相当于point(the loch, the locV)the locH of sprite:水平位置the locV of sprite:垂直位置sprite(1).loc=point(320,240)------pointsprite(1).locH=320――数值sprite(1).locV=240――数值例:设置精灵位置sprite(1).loc=point(320,240)6.locZ指令说明:sprite目前在Z轴上的高度。
Channels之间存在高低与前后的关系,channel小的sprite位于下层,channel大的sprite位于上层。
例:点击相应图片移到最上层。
on startMovieglobal highestCardhighestCard=5endon mouseUpglobal highestCardhighestCard=highestCard+1sprite(the clickOn).locZ=highestCardend7.Top、bottom、Left、right指令说明:环绕sprite长方形的上下左右坐标。
on mouseUp meput sprite(1).topput sprite(1).bottomput sprite(1).leftput sprite(1).rightend用massage窗口查看。
例:文字上下或左右反复运动。
Put Sprite(1).rect例:匹配题intersects的应用指令说明:在stage上留下残影sprite(1).trails=true9.updatestage更新画面,常用于显示连续的动作例:拖尾移动on mouseUp mesprite(1).trails=truerepeat with x=1 to 100sprite(1).locH=sprite(1).locH+2updatestageend repeatend10.foreColor、backColor控制演员前景色、背景色的属性。
注意:这个属性主要用于用“tools palette”工具画出的Shape(向量)图形例:鼠标点击循环改变精灵的前景(背景)色on mouseUp mesprite(1).foreColor=sprite(1).foreColor-1end11.constraint指令说明:将某一可移动的sprite的中心点的活动范围限制在另一个sprite的四周边框内。
on startMoviesprite(1).constraint=2-- 2代表sprite(2)12.visible指令说明:sprite在stage上可见或隐藏。
一个隐藏的sprite仍具有位置、尺寸等各种属性,只是视觉上看不见而已。
Sprite(1).visible=false13.puppetSprite判断某一sprite是否处于puppet状态,是时,其属性与行为将由Lingo控制,否则依据score window中的设置。
例:将sprite 1设置为puppet状态。
On prepateMoviepuppetSprite 1, trueend14.quad控制sprite的四个顶点,用数组的方式来存放四个点的坐标值,依序分别为左上、右上、右下、左下,改变四个点的坐标,可以改变sprite的图框形状on mouseUp meput sprite(1).quadput sprite(1).quad[1]put sprite(1).quad[2]put sprite(1).quad[3]put sprite(1).quad[4]endsprite(1).quad=[point(9.0000,10.0000), point(309.0000, 10.0000), point(309.0000, 210.0000), point(9.0000, 210.0000)]sprite(1).quad[1]= point(9.0000,10.0000)数组在Lingo里就叫做列表,列表可以存储一系列连续的数据,如果数据具有相似性、规律性,需要放到一起就可以使用列表来表示。
二、鼠标(Mouse)控制的常见指令1.指令名称:clickOn指令语法:the clickOn指令说明:判断鼠标最近一次点选过的sprite。
返回最近一次单击精灵通道的通道号,如果在舞台上单击则返回值为0。
注意:只有附带程序(写在cast或sprite里面均可)的sprite才会被判断,即使这个程序毫无作用也无妨,例如:on mouseDown--end例:(1)beep次数控制on mouseUprepeat with x=1 to the clickOnbeepend repeatend(2)设置不带程序sprite(3)message窗口观察clickonon mouseDownput the clickonend2.指令名称:mouseH、mouseV指令语法:the mouseH、the mouseV指令说明:当前鼠标点(cursor)的水平位置(the mouseH)与垂直位置(the mouseV)。
例:判断鼠标接近spriteon exitFrame medH=the mouseH-sprite(1).locHdV=the mouseV-sprite(1).locVif dH*dH+dV*dV<7*7 thenbeepend ifend——鼠标判断在附近变为手的形状。
3.mouseLocpoint(the mouseH, the mouseV)例:鼠标设置sprite的位置综合练习:拖动四角变形图片。
on mousedowntemp=sprite(1).quadrepeat while the mousedownsprite(the clickon).loc=the mouseloctemp[the clickon-1]=the mouselocsprite(1).quad=tempupdatestageend repeatend4.rollOver指令语法:the rollover指令说明:rollOver(whichSprite)的作用是判别光标目前是否位于the sprite 的长方形区域内,是则rollOver(whichSprite)为1,否则为0。
The rollover所代表的是光标下的sprite channel。
这个指令通常用在frame script里面。
例:鼠标略过,发出不同的音乐。
on exitFrame mecase (the rollover) of1: puppetSound "piano"2: puppetsound"干杯吧朋友"3: puppetSound"我是一只小小鸟"end caseend5.mouseEnter、mouseLeave语法指令:on mouseEnter、on mouseLeave指令说明:mouseEnter:判断鼠标是否刚刚进入某个sprite区域;mouseLeave:判断鼠标是否离开这个区域。
如果这个sprite是bitmap图形,且其ink effect是matte,则他的区域为图形本身,否则为环绕其的长方形。
他们与rollover()的区别:(1)mouseEnter与mouseLeave通常在cast script or sprite script,而rollOver ()却用在frame script;(2)mouseEnter与mouseLeave只被执行一次,而rollOver()常常会连续被执行。
例一:将上例完善,鼠标放到相应文字上改变颜色和鼠标形状on mouseEntermember(1).forecolor=56cursor(280)end mouseEnteron mouseLeavemember(1).forecolor=255cursor(-1)end mouseLeave例二:鼠标超时警告on mouseEnterstarttimerendon mouseLeaveif the timer>2*60 thenalert "Too Slow!"end ifendtick6.mouseWithin指令语法:on mouseWithin指令说明:判断鼠标点是否位于某个sprite区域之内。