推荐阅读

详细解析日系网页设计的现象和本质
在很多人眼里,日本是一个隐忍、充满禅意的国家。以寺庙、茶道、电子产品而闻名。既传统,又现代。日本的建筑设计、书刊设计受世界瞩目。但是不知怎么的,日本的网页设计风格很怪异。有点像1998年的网页风格。RakutenNicoNicoDougaGigazine看看日本这些最流行的网站(比如 Goo, Rakuten, Yomiuri, NicoNico, OKWave, @cosme),你会发现他们都有共同点:文字排布紧密图像质量偏低

FW MX 2004 之 Shapes 初体验(二)
大家好,欢迎大家回来继续和我一起早早体验FWMX2004之Shapes带给我们的全新体验! 在上一节,我们一起详细的研究了工具箱上的Shapes工具组的使用方法,操作技巧,本节我们就来看看Shapes浮动面板带给我们的新奇感受吧! 首先我们再次来看看Shapes浮动面板都有哪些新东西: 可以看到,Shapes面板里面目前共有9个形状组:Clock(钟表)、Cog(齿轮)、Cube(立方体)、Cylinder(圆柱体)、Frame(像框)、Perspective(透视图)、Tabs(制表符)、Talking(谈话框)、Tube(管子)。接下来我们依次来看看个个形状组的使用方法及技巧。 提示:为什么我们对Shapes面板里面的9个形状对象使用的称呼是“形状组”,大家可以从Shapes面板中任意拖拽形状对象到编辑区,然后执行菜单命令“Modify--Ungroup(快捷键为Ctrl+Shift+G)”,解散群组关系,就会发现这些形状对象都是以群组方式形成的!所以这里我们称其为“形状组”。 提示2:关于形状组的操作技巧,我们会在下面的介绍中马上介绍道,需要注意的是,所有的方法技巧都是在没有打散群组关系的前提下进行的! 1、Clock(钟表)组 将Clock形状组直接拖放在编辑区上,就会自动出现一个钟表图案,如下图所示。钟表的调整很有意思的,大家可以看到,用鼠标单击钟表后会出现四个调整控制点,下面我们就依次来看看各个调整控制点的作用所在: a、1号点:单击鼠标,会出现背景提示框:“Click to change tick marks(单击改变表盘标记)”,如果单击鼠标,就会改变表盘的时间刻度显示状态,总共有4种显示状态:不显示时间刻度;只显示以0点为起点的90度间隔的时间刻度,共4个刻度;显示以0点为起点的45度间隔的时间刻度,共12各个刻度,也就是12个小时的显示方式;显示60个刻度,也就是60秒的显示方式。大家可以根据自己的需要选择相应的显示方式。

基于Pro/E和ADAMS的少自由度并联机构运动仿真
少自由度并联机构是国际上机器人学研究的热点之一,构造出具有良好性能的少自由度并联机器人的众多构型,以便根据应用要求选择不同性能的机构,是并联机器人机构中的一项重要任务,当前众多研究人员的研究方向都集中于构建新型的少自由度并联机构。根据理论研究出来的众多的少自由度并联机构还需要检验其运动的正确性,传统的方法是通过试验样机制造实物来验证,而近年计算机技术的广泛应用提供了新的方法,那就是虚拟样机技术,这包括了三维CAD建模技术和机械系统运动学等相关技术。 大型的商用动力学仿真软件ADAMS、SIMPACT等集成了最新的多体系统动力学理论成果、各种方便的建模工具、高效的求解器、功能强大的后处理模块以及可视化界面等,用它们来建立机械系统的仿真模型,可以将注意力放在改进模型设计上,而不必关心建立方程、求解方程这些在过去要耗费大量精力的工作,从而大大提高了机械系统仿真的效率。仿真首先要做的是建立少自由度并联机构精确的三维模型,此时用动力学仿真软件就有点力不从心了,特别是对于此类少自由度并联机构,各个运动副的空间几何结构和位置都对整个机构的运动有重大的影响,需要三维建模建立准确的模型。因此,需要借助于三维建模功能很强的CAD软件来建模。 这里以PTC公司的三维建模软件Pro/E和MDI公司的动力学仿真软件ADAMS相结合建立少自由度并联机构的运动仿真模型。首先在Pro/E中建立机构的三维模型,机构的安装位置为机构运动的初始位置。然后利用两个软件的接口程序Mechanism/Pro生成刚体和基本的运动副,把三维模型导入ADAMS进行进一步的完善,添加驱动和约束,进行运动仿真。在整个过程中,需要对建立模型等前续工作进行不断的修改和完善,才能生成所要求的少自由度并联机构的仿真模型。 一、少自由度并联机构的提出 少自由度并联机构新构型的提出有着不同的理论方法,本文中采用的为利用螺旋理论来分析新型少自由度并联机构。利用运动螺旋与力螺旋的对偶关系,以及运动与约束、运动螺旋与反螺旋的对应关系,建立复杂少自由度并联机器人机构类型综合的数学模型。因为并联机器人机构是由支链、动平台和静平 在少自由度并联机构中,三自由度移动并联机构有着广泛的用途。在很多工业应用中,三个方向的移动就已经满足要求,而使用传统的六自由度机构增加了机构的复杂性和控制的难度,因此直接应用三自由度移动并联机构非常合适。此处利用螺旋理论提出一种纯移动三自由度并联机构,通过此机构来说明利用Pro/E和ADAMS完成运动仿真的过程。如图1所示,此机器人支链为三条对称的RPC支链,通过螺旋理论和空间几何分析可得此并联机构动平台应具有三个纯移动自由度。 图1 三支链并联机构模型
最新发布

使用DW用ASP+ACCESS编写目录树
利用Access创建数据库listBase.mdb: 数据表:listTable 数据字段:listId listName listInfo parentId 连接方法:<% dim sConn,sConnStr,sSql sConnStr="DRIVER={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("listBase.mdb") set sConn=server.createobject("adodb.connection") sConn.open sConnStr%> 把以上代码保存成文件:initialize.asp 下面这段程序代码是用来显示目录树用的,保存成文件:inc.asp<!--#include file="initialize.asp"--><script language=jscript><!--//此函数用来显示与关闭它的子菜单的,并切换其前面的小图片function showMenu(menuObj,isSub){if(menuObj.style.display=="none"){menuObj.style.display="";if(isSub==1){event.src="http://www.vipcn.com/InfoView/Element.srcimages/open.gif;}}else{menuObj.style.displaynone;if(isSub1){event.srcElement.srcimages/close.gif";}}}//--></script><!--下面这段蓝色的区域,是设置目录树的根,其中的内容非数据内的数据,数据库内的数据都附着在它的下面//--><%response.write("<table width='100%' border='0' cellspacing='0' cellpadding='0'>" & chr(13))response.write("<tr>" & chr(13)&"<td>" & chr(13) & "<table width='100%' border='0' cellspacing='0' cellpadding='0'>")response.write("<tr>" & chr(13) & "<td width='18' ><img src="http://www.vipcn.com/InfoView/images/root.gif" onclick='jscript:showMenu(subMenu0,0)' style='cursor:hand' alt='不可修改'></td>" & chr(13) & "<td width='100' class='menuPro' id='listName0'>根节点</td>" & chr(13))response.write("<td width='40' class='menuFont' align='center' style='cursor:hand' onclick=""jscript:showForm('add',0)"">添加</td>" & chr(13))response.write("<td width='40' class='menuFont' align='center' onclick=''></td>" & chr(13))response.write("<td> </td></tr></table></td></tr>" & chr(13))response.write("<tr id='subMenu0'>" & chr(13) & "<td colspan='2'>" & chr(13))'此处调用显示目录树的递归函数listChild(0)response.write("</td>" & chr(13) & "</tr>" & chr(13) & "</table>" & chr(13))'下面代码为显示目录树最关键的函数,使用了递归方法(很多象这样类型的都是用递归来做的。)function listChild(id)dim sRec,sSql,sNum,sTmpset sRec=server.createobject("adodb.recordset")sSql="select listId,listName,listInfo,parentId from listTable where parentId=" & idsRec.open sSql,sConn,3,1if not sRec.eof thensNum=1response.write("<table width='100%' border='0' cellspacing='0' cellpadding='0'>" & chr(13))while not sRec.eofsTmp=sConn.execute("select count(listId) as countSub from listTable where parentId=" & sRec("listId"))if sTmp("countSub")>0 thenresponse.write("<tr>" & chr(13))if sNum=sRec.recordcount thenresponse.write("<td width='18' valign='top'><img src="http://www.vipcn.com/InfoView/images/angel.gif"></td>" & chr(13))elseresponse.write("<td width='18' background='images/eline.gif' valign='top'><img src="http://www.vipcn.com/InfoView/images/t.gif" ></td>" & chr(13))end ifresponse.write("<td>" & chr(13) & "<table width='100%' border='0' cellspacing='0' cellpadding='0'>" & chr(13))response.write("<tr>" & chr(13) & "<td width='118' class='menuPro' id='listName" & sRec("listId") & "'><img id='img" & sRec("listId") & "' style='cursor:hand' src="http://www.vipcn.com/InfoView/images/close.gif" align='absMiddle' onclick='jscript:showMenu(subMenu" & sRec("listId") & ",1)' alt='" & sRec("listInfo") & "'>" & server.HTMLEncode(sRec("listName")) & "</td>" & chr(13) & "<td width='40' class='menuFont'><div align='center' style='cursor:hand' onclick=""jscript:showForm('add'," & sRec("listId") & ")"">添加</div></td><td width='40' class='menuFont'><div align='center' style='cursor:hand' onclick=""jscript:showForm('edit'," & sRec("listId") & ")"">编辑</div></td>" & chr(13))response.write("<td width='40' class='menuFont'><div align='center' style='cursor:hand' onclick=""jscript:window.location='disp.asp?disp=del&parentId=" & sRec("listId") & "'"">删除 </div></td>" & chr(13) & "<td> </td>" & chr(13) & "</tr>" & chr(13) & "</table>" & chr(13) & "</td>" & chr(13) & "</tr>" & chr(13))response.write("<tr id='subMenu" & sRec("listId") &"' style='display:none'>")if sNum=sRec.recordcount thenresponse.write("<td width='18' valign='top'")response.write("<img src="http://www.vipcn.com/InfoView/images/angel.gif" >")response.write("</td>" & chr(13))elseresponse.write("<td width='18' valign='top' background='images/eline.gif'>")response.write("</td>" & chr(13))end ifresponse.write("<td>" & chr(13))listChild(sRec("listid"))response.write("</td>" & chr(13) & "</tr>" & chr(13))elseresponse.write("<tr>" & chr(13))if sNum=sRec.recordcount thenresponse.write("<td width='18' valign='top'><img src="http://www.vipcn.com/InfoView/images/angel.gif"></td>" & chr(13))elseresponse.write("<td width='18' background='images/eline.gif' valign='top'><img src="http://www.vipcn.com/InfoView/images/t.gif" ></td>" & chr(13))end ifresponse.write("<td>" & chr(13) & "<table width='100%' border='0' cellspacing='0' cellpadding='0'>" & chr(13))response.write("<tr>" & chr(13) & "<td width='118' class='menuPro' id='listName" & sRec("listId") & "'><img id='img" & sRec("listId") & "' src="http://www.vipcn.com/InfoView/images/file.gif" align='absMiddle' alt='" & sRec("listInfo") & "'>" & server.HTMLEncode(sRec("listName")) & "</td>" & chr(13) & "<td width='40' class='menuFont'><div align='center' style='cursor:hand' onclick=""jscript:showForm('add'," & sRec("listId") & ")"">添加</div></td><td width='40' class='menuFont'><div align='center' style='cursor:hand' onclick=""jscript:showForm('edit'," & sRec("listId") & ")"">编辑</div></td>" & chr(13))response.write("<td width='40' class='menuFont'><div align='center' style='cursor:hand' onclick=""jscript:window.location='disp.asp?disp=del&parentId=" & sRec("listId") & "'"">删除</div></td>" & chr(13) & "<td> </td>" & chr(13) & "</tr>" & chr(13) & "</table>" & chr(13) & "</td>" & chr(13) & "</tr>" & chr(13))end ifsRec.movenextsNum=sNum+1wendresponse.write("</table>" & chr(13)) end ifsRec.close '关闭记录集set sRec=nothing '关闭记录集end functionsConn.close '关闭数据库链接set sConn=nothing '关闭数据库链接%>下面这是调用页代码,保存成index.asp<%@LANGUAGE='VBSCRIPT' CODEPAGE='936'%><html><head><meta http-equiv='Content-Type' content='text/html; charset=gb2312'><title>目录树</title><script language='JavaScript' type='text/JavaScript'><!--function MM_reloadPage(init) { //reloads the window if Nav4 resizedif (init==true) with (navigator) {if ((appName=='Netscape')&&(parseInt(appVersion)==4)) {document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();}MM_reloadPage(true);//--></script><script language="JScript"><!-- //此函数设置处理表单的内容//比如添加时,表单为空,并显示为什么节点添加子节点//比如修改时,表单内为相应节点的内容,并显示在修改什么节点

Dreamweaver MX 2004从零开始(1)
随着Internet的普及,很多人已经不满足于仅仅上网冲浪,而希望深入地参与其中。现在,拥有自己的Web网站已经成为一种潮流。虽然制作一个简单的网页并不困难,但是制作出超凡脱俗的网站就不那么容易了,因此我们特意为大家准备了最新网站设计软件Dreamweaver MX 2004的系列教程,希望对大家有所帮助。 通常在一个网站中会有几十甚至几百个风格基本相似的页面,如果每次都重新设定网页结构以及相同栏目下的导航条、各类图标就显得非常麻烦,不过我们可以借助Dreamweaver MX 2004的模板功能来简化操作。其实模板的功能就是把网页布局和内容分离,在布局设计好之后将其存储为模板,这样相同布局的页面可以通过模板创建,因此能够极大提高工作效率。 一、制作模板 制作模板和制作一个普通的页面完全相同,只是不需要把页面的所有部分都制作完成,仅仅需要制作出导航条、标题栏等各个页面的公有部分,而把中间区域用页面的具体内容来填充。 第一步:先在Dreamweaver MX 2004中运行“File→New”命令,接着从图1所示的窗口中依次选定“Template page→HTML template”选项,点击“Create”按钮之后即可创建一个模板文件。 小提示:可以先下载一个中意的网页,然后在Dreamweaver MX 2004中打开它,仅仅保留框架等元素之后通过“File→Save as Template”命令将其保存为模板,这样能够省去很多制作模板的时间。 为了避免编辑时候误操作而导致模板中的元素变化,模板中的内容默认为不可编辑,只有把某个区域或者某段文本设置为可编辑状态之后,在由该模板创建的文档中才可以改变这个区域。先用鼠标选取某个区域(也就是每个页面不同内容的区域),接着运行“Modify→Templates→New Editable Region”命令,并且在弹出的对话框中为这个区域设定一个名称,这样就完成了编辑区域的设置。 小提示:设定好编辑区域之后需要运行“File→Save”命令保存所做的修改。二、使用模板 有了模板之后,接下来就要在编辑网页时候使用它们了。只要在Dreamweaver MX 2004主窗口中运行“File→New”命令即可看见图1所示的新建窗口,接着进入“Templates”标签即可查看到已经保存的模板,从中选取一种还可以在右部的预览区进行预览(图3),最后挑选一款中意的模板并点击下部“Create”按钮打开这个模板。 在打开的模板中,无法编辑的区域将呈高亮状态显示,但是有些位置是锁定区域,却不是高亮显示,这主要是因为图片正好盖住了背景的颜色。对于这种情况,可以运行“Edit→Preferences”命令,在弹出窗口的“Category”列表中选取“Highlighting”一项,接着在右部区域中选取“Locked regions”旁边的“Show”选项(图4),并且设定高亮显示色为蓝色,这样就可以很清楚地分辨出模板中的锁定区域了。 小提示:如果仍然看不见高亮显示效果,还可以依次选中“View→Visual Aids→Invisible Elements”命令。 最后,我们只要在可编辑区域添加网页的内容就可以了,比如添加一些文字说明或者是插入相应的图片,最后通过“File→Save”命令保存页面即可。 三、修改和更换模板 在通过模板创建了若干个页面之后,如果需要更改页面或者增加栏目,再对所有的页面手工修改则非常麻烦,因此我们可以通过Dreamweaver MX 2004的模板修改功能来解决这个问题。比如我们对模板进行了修改之后,运行“File→Save”命令来保存模板,这时候会弹出提示框询问是否更新所有使用了该模板的页面(图5),确认之后就会显示出更新的页面总数以及更新的时间等信息。

Dreamweaver MX 2004从零开始(3)
用框架构建网页 我们登录一些论坛之后,可以看见左边是每个讨论区的名称,点击任意一个讨论区就可以在右部区域中看见相应讨论区的内容,不过左右部分是独立显示的,例如拖动左边的滚动条不会影响右侧的显示效果。其实这就是页面中利用了框架技术,因此可以把浏览器的显示空间分割为几个部分,每个部分都独立显示网页内容。而且把几个框架结合在一起构成框架集,能够让页面具有更为丰富的效果。 一、创建框架和框架集 第一步:在Dreamweaver MX 2004中新建一个页面,运行“View→Visual Aids→Frame Borders”命令之后可以看见编辑窗口中出现一个边框,用鼠标点击边框之后可以看见虚线框,说明新建的页面中已经附带了框架。 第二步:按下“Alt”按键,用鼠标拖拽边框,松开鼠标之后就可以把窗口一分为二,这样就把页面分为两个边框。比如拖拽左右边框可以把窗口分为左右两个部分,而拖拽上下边框可以把窗口分为上下两个部分。另外,窗口的四个角也可以拖拽,这样可以直接把窗口分为四个区域(如图1)。当窗口分割为几个框架之后,每个框架都可以作为独立的网页进行编辑,也可以直接把某个已经存在的页面赋给一个框架。

Dreamweaver MX 2004从零开始(4)
图层的使用 图层是网页的一个区域,在一个网页中可以有多个图层存在,它最大的魅力在于各个图层可以重叠,并且可以决定每个图层是否可见,同时也能够自定义各图层之间的层次关系。在熟练掌握了图层技术之后,就可以给网页提供强大的页面控制能力。 创建图层 为了说明图层的功能,我们先来制作图1所示的简单的实例效果(如图1)。 完成上述操作之后按下“F12”按键进行预览,就可以在IE浏览器中查看到图1所示的效果了。嵌套图层 所谓嵌套图层指的是一个图层创建在另外一个图层中,比如图3所示的就是一个典型的嵌套图层(如图3)。实际上制作这种嵌套图层很简单,只要创建了一个父图层之后用鼠标点击图层内部,并且再次插入一个图层即可。不过嵌套的图层并不意味着子图层必须要在父图层内部,它们之间存在着继承关系。 继承的作用是可以使子图层的可见性和父图层保持一致,由于很多动态网页的特效是通过控制图层的可见性来实现的,因此当父图层可见性改变时,子图层的可见性也随之改变。而且继承关系也可以让子图层和父图层的相对位置不变,比如我们拖拽父图层移动,此时子图层也会跟随着移动,这在制作动态网页的时候将显得非常有用。 图层的“Z-顺序” 和表格相比,图层最大的优势在于图层可以重叠,为了表示各个图层哪个在上面,哪个在下面,就要给每个图层设定一个序号,这个序号就是“Z-顺序”,它的意思就是除了屏幕的X和Y坐标之外,人为增加一个垂直于屏幕的Z轴。 如图4所示,左边区域的四个图层和右边区域的四个图层就有明显的不同,而调整图层的顺序也很简单,只要用鼠标依次点选放置在最下部、中部和最上部的图层即可。但是这种操作方式在图层很多的时候就显得有些麻烦了,后期调整也不便,因此我们可以通过图层面板进行调整。 先运行“Window→Layers”命令激活图层面板,此时可以看见图5所示的面板窗口(如图5),在这里只要选中需要改变序号的图层,按下鼠标之后向上或者向下拖拽,当拖拽到希望插入的两层之间出现一条横线时松开鼠标,这样就可以改变各个图层的“Z-顺序”了。

Dreamweaver MX 2004从零开始(5)
用行为丰富网页效果 行为可以说是Dreamweaver MX 2004中最有特色的功能,它可以让你不用书写一行JavaScript代码即可实现多种动态网页效果。行为的关键在于Dreamweaver MX 2004中提供了很多动作,其实就是标准的JavaScript程序,每个动作可以完成特定的任务。这样,如果你所需要的功能在这些动作中,那么就不要自己编写JavaScript程序了。 弹出消息框 如果希望别人进入网站首页的时候可以看见一个弹出的消息框来显示一些内容,则可以通过下述方法实现。 第一步 在Dreamweaver MX 2004主窗口中新建一个页面,接着运行“Windows→Behaviors”命令激活行为面板。 第二步 在行为面板中点击“+”按钮,并且从弹出菜单中选取“Popup Message”命令,这时可以看见图1所示的窗口,在其中可以输入诸如“欢迎光临中国电脑教育报网站!”之类的提示信息。

在 Dreamweaver 中设置本地或网络连接的选项
在连接到网络文件夹或在本地计算机上存储文件或运行测试服务器时使用此设置。 单击“添加新服务器”按钮,添加一个新服务器选择一个现有的服务器,然后单击“编辑现有服务器”按钮有关此选项的更全面的说明,请参阅“高级设置”类别。

在 Dreamweaver 中设置 WebDAV 连接的选项
如果使用基于 Web 的分布式创作和版本控制 (WebDAV) 协议连接到 Web 服务器,请使用此设置。 单击“添加新服务器”按钮,添加一个新服务器选择一个现有的服务器,然后单击“编辑现有服务器”按钮此 URL 包括协议、端口和目录(如果不是根目录)。例如,http://webdav.mydomain.net/mysite。这些信息用于服务器身份验证,与 Dreamweaver 无关。如果不能确定用户名和密码,请询问系统管理员或 Web 管理员。有关此选项的更全面的说明,请参阅“高级设置”类别。

在 Dreamweaver 中设置 RDS 连接的选项
如果使用远程开发服务 (RDS) 连接到 Web 服务器,请使用此设置。对于这种连接方法,远程服务器必须位于运行 Adobe® ColdFusion® 的计算机上。 单击“添加新服务器”按钮,添加一个新服务器选择一个现有的服务器,然后单击“编辑现有服务器”按钮输入安装 Web 服务器的主机的名称。主机名可能是 IP 地址或 URL。如果不能确定,请询问管理员。输入要连接的端口号。输入根远程文件夹作为主机目录。例如,c:\inetpub\wwwroot\myHostDir\。输入您的 RDS 用户名和密码。如果希望 Dreamweaver 记住这些设置,请选择“保存”选项。

在 Dreamweaver 中远程文件夹设置答疑
下表提供了有关设置远程文件夹时可能遇到的常见问题,以及如何解决这些问题的信息。 Adobe 网站上还有更详尽的技术说明,专门提供 FTP 疑难解答信息,网址:www.adobe.com/go/kb405912_cn。