ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:65.91KB ,
资源ID:25914852      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25914852.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(南师大人机交互技术复习提纲.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

南师大人机交互技术复习提纲.docx

1、南师大人机交互技术复习提纲人机交互技术复习提纲1 文件系统1 请定义一个类,存储管理指定文件夹下的所有文件名及其属性,写出该类的构造函数。指出该类的应用背景。Class clsDirectoryPrivate FileNames As List(Of String)Private LV as List(Of ListViewItem)End classSub New (pathname as string )FileNames = Directory.GetFiles(PathName).ToList /得到文件名的集合LV =new List(Of ListViewItem)For i =

2、0 To FileNames.Count 1 Item=new ListViewItem Item.SubItems.Add(FileNames(i).) /设置属性项目:创建时间、大小 LV.Add (Item)NextEnd Sub应用背景:在ListView控件中,显示查询文件属性列表1 请定义一个类,存储管理指定文件夹下的所有子文件夹,写出该类的构造函数。Class clsDirectoryprivate foldnames As list (of string) /子文件夹的名称集合public Node As TreeNode TreeView中的对应节点End classSub

3、New (pathname as string )foldnames = Directory.GetDirectories(pathname).Tolist if foldnames.count=0 then Node = nothing: Return Node = New TreeNode(pathname)For i=0 to foldnames.count-1 Dim Nodei as clsDirectory = New clsDirectory (foldnames (i) node.Nodes.Add ( Nodei.Node )Next End Sub应用背景:在TreeVie

4、w控件中,显示查询目录树结构2 TreeView控件1 请编写函数,将指定的Tuple类型数据(例如:(“dad”, ”son”))插入到TreeView控件中。Sub Insert(tv as TreeView, t as Tuple) Node = Find(tv.Root, t.item1) /找插入的节点 Node.children.add(t.item12) /加入新节点 End subFunction Find(Node as TreeViewNode , key as string) as TreeViewNode If node.Text = key Then Return n

5、ode For i=0 to Node.children.count-1 Dim node1 As TreeNode = Find(Node.children(i), key) If node1 is nothing then return node1Next iReturn nothing End Function1 请编写函数,在TreeView控件中,删除text属性等于指定字符串key的结点及其子树。Sub Delete(tv as TreeView, key as string) Node = Find(tv.Root, key) /找待删除的节点的父节点ParentNode= No

6、de.Parent()parentnode.Nodes.Remove(node)End subFunction Find(Node as TreeViewNode , v as string) as TreeViewNode同上3 动态控件1 请编写函数,创建一列n个按钮控件,并指定每个按钮的Click事件。Function f(n) as list (of Button) Dim Buttons as new list (of Button) For i = 0 To N - 1 Buttons.Add(New Button) AddHandler Buttons(i).Click, Add

7、ressOf Button_Click Next Return ButtonsEnd sub1 请编写函数,创建一列n个文本控件,并指定每个文本控件的TextChange事件。Function f(n) as list (of textBox) Dim textBoxs as new list (of textBox) For i = 0 To N - 1 textBoxs.Add(New textBox) AddHandler textBoxs (i). TextChange, AddressOf TextBox_TextChange Next Return TextBoxsEnd sub4

8、 线程之间的操作1 在窗体frmTest的列表框lstMessage中,显示另一个线程对象FileSystemWatcher的信息。请说明之间的流程。 一个窗口对应一个线程,该线程拥有读写窗口中控件的权利。这意味着另一个线程对象不能拥有这种权利,否则无法保证控件数据的合法性。Public Class frmTest Sub Display(msg as string) lstMessage.items.add( msg ) EndDelegate Sub AppendMessage(msg As String) / 委托类型:函数指针类型 Private output as AppendMes

9、sage / 委托对象:具体的函数地址Private Sub frmTest_Load() output =new AppendMessage(address Me.Display)End SubPublic WithEvents Watcher As FileSystemWatcher /另一个线程对象:能接受事件Private Sub Watcher_Created(e) /文件系统发生创建文件的事件 Dim filename As String = e.FullPath Invoke(output, filename) End Sub5 自定义事件1 以绘图程序为例,说明自定义事件的使用

10、方法。在图形对象集合中,设置事件,以便在集合发生变化时,界面进行绘图操作。Class clsElems / 图形对象集合类Private elems as list(of Elem)Event Append() / 定义事件Sub Append(e as Elem) Elems.Add(e) RaiseEvent Append() / 产生事件End subEnd classfrmTest: 界面类 dim withEvents Elems as clsElems / 能够接受事件 Sub Draw( ) handle Elems. Append /响应事件 clsElems.Draw(.)

11、End Subend sub1 以智能输入为例,说明自定义事件的使用方法。Public Class frmListBox Public Event CharPress(C As Char) / 定义事件Private Sub lstWords_KeyPress(e) . RaiseEvent CharPress(e.KeyChar) 产生事件End SubEnd ClassPublic Class frmTestDim WithEvents frm As frmListBox / 能够接受事件 Private Sub frm_CharPress(C As Char) Handles frm.C

12、harPress /响应事件 txtContent.SelectedText = C End SubEnd Class6 多线程与并行1 设某计算任务由整数参数n1n2决定,需要消耗较长时间,可能导致界面无法响应事件。使用BackgroundWorker对象可以解决此类问题。请说明使用BackgroundWorker对象的方法,要求在计算完成时,将结果输出。Structure WorkerPara Dim n1 As Integer Dim n2 As IntegerEnd StructurePublic Class frmTest Dim bkWork As BackgroundWorker

13、Private Sub btnStart_Click() Dim para As WorkerPara=1000,100000 bkWork.RunWorkerAsync(para) End Sub Private Sub bkWork_DoWork(). Dim para As WorkerPara = e.Argument 提取所需的所有参数 Dim sum As Single = js(para.n1, para.n2) 计算任务 e.Result = sum 将计算结果赋给Result属性(Object类型)。 End SubPrivate Sub bkWork_RunWorkerCo

14、mpleted() /在计算完成时,将结果输出 txtResult.Text = e.Result End Sub1 请举例说明Parallel.For的使用方法。Public Class clsParallelArray Const ElemCount As Integer = 100000 Private A(ElemCount) As SinglePublic sub RunParallel() 启动并行处理 TaskCount As Integer=10 并行的任务个数 将任务分成TaskCount个子任务:编号为0,TaskCount-1 Parallel.For(0, 100, A

15、ddressOf DoParallel) End Function Private Sub DoParallel(i As Integer) 安排并行子任务的参数 根据子任务的编号i,计算子任务的参数 Dim n1 As Integer = ElemCount / TaskCount 子任务计算的数据个数 Dim si As Integer = i * n1 子任务计算的起始下标 Do1(si, n1) 每个任务的计算范围A(si).A(si+n1-1) End Sub 执行每个并行子任务 Private Sub Do1(si As Integer, n1 As Integer) For I

16、= si To si + n1 - 1 A(I) = Next End Sub7 命令序列、正则表达式1 在文本编辑中,常常有对命令序列的管理要求。请写出基本操作的类型定义,及命令序列的存储结构。Public MustInherit Class clsOp Public MustOverride Sub DoWork(txtContent As TextBox) /虚函数 Public MustOverride Sub UnDo(txtContent As TextBox)End ClassPublic Class clsInsertOp Inherits clsOp Private posi

17、tion As Integer, newchars As StringEnd ClassPublic Class clsDeleteOp Inherits clsOp Private position As Integer, length As Integer Private deletetxt As String 删除的文本End ClassPublic Class clsOps Private txtContent As TextBox Private Ops As List(Of clsOp), ith As Integer Public Sub Undo() Ops(ith - 1).

18、UnDo(txtContent) ith -= 1 End Sub Public Sub Redo() Ops(ith).DoWork(txtContent) ith += 1 End SubEnd Class2 在读结构化文本文件、分析行命令时,正则表达式有广泛的应用。请举例说明之。8 图像运算1 在图像处理中,位图的数据类型是什么?请写出读写像素的函数,颜色值的分解组合函数? Dim Source As Bitmap = New Bitmap(“.”) Source.Save(“.”) Dim c As Color = Target.GetPixel(p.X, p.Y) Target.Se

19、tPixel(p.X, p.Y, c)Dim c As Color = Color.FromArgb(255, 0,0)R=c.red 2 在播放幻灯片时,有许多图像切换特效。请举例说明其实现方法。Public Class clsTimer Private Image As Bitmap, g as Graphics Private Timer As Timer Public Sub New(g as Graphics) Image = New Bitmap(“.”) Me.g=g Timer = New Timer AddHandler Timer.Tick, AddressOf Timer

20、Tick Timer.Enabled = TrueEnd Sub Private Sub TimerTick() g.DrawImage(Image, rect1, rect2, ) End Sub3 区域选择是图像处理中的基本操作,请说明区域选择的方法,区域的数据结构,及可能的操作。图的遍历操作9 基于矩阵的线性变换1 绘图软件和图像处理中,都存在线性变换,请写出平移、变比、旋转的变换矩阵。 2 请写出绕指定点旋转角的变换矩阵。将原点平移到绕原点逆时针旋转角将原点平移到总变换矩阵3 绘图软件中,用户应能设定作图的范围,并在该范围内利用鼠标绘图。请写出实现方法。将自定义坐标系中的坐标转换为像素

21、点坐标,用于绘图 将鼠标点坐标(像素),转换为自定义坐标系中的坐标,用于创建图形对象10 动态绘图技术1 绘图软件中,创建图形对象中的橡皮筋技术,极大的改善了绘图界面,请说明其中的事件流程。以绘制直线段为例说明 Dim sp As PointF 临时变量,用于创建Line,Rectangle Dim lastelem As clsElem = NothingPrivate Sub picCanvas_MouseDown() sp = e.Location End SubPrivate Sub picCanvas_MouseMove() If lastelem IsNot Nothing The

22、n lastelem.Draw(g, bkcolor) 擦出旧的临时对象 End If Dim ep As PointF = e.Location lastelem = New clsLine(sp, ep) 创建新的临时对象 lastelem.Draw(g) 绘制新的临时对象 End SubPrivate Sub picCanvas_MouseUp() Dim ep As PointF = e.Location lastelem = Nothing Elems.Append(New clsLine(sp, ep) End Sub1 绘图软件中,编辑图形对象中的拖动技术,极大的改善了绘图界面,

23、请说明其中的事件流程。拖动的过程:擦除旧的影子,绘制新的影子以平移为例: Dim Shadow As clsSelection 被拖动的选集的影子 Dim sp As PointF Dim LastM As clsMatrix3 拖动过程中的上一次矩阵 Private Sub picCanvas_MouseDown() sp = e.Location Shadow = Elems.Selection.Clone() LastM = Nothing End Sub Private Sub picCanvas_MouseMove() Dim ep As PointF = e.Location St

24、atic sp As PointF If LastM Is Nothing Then sp = Me.sp 拖动开始时的起点(拖动过程中Me.sp保持不变) Else Shadow.Draw(picCanvas.CreateGraphics, LastM, ObjectState.None) 擦出旧影子 End If M.SetPan(ep.X - sp.X, ep.Y - sp.Y) 影子移动一小步 Shadow.Transform(M) Shadow.Draw(picCanvas.CreateGraphics, M, ObjectState.Drag) 绘制新的影子 LastM = M s

25、p = ep End SubPrivate Sub picCanvas_MouseUp() Dim m As clsMatrix3 = New clsMatrix3 m.SetPan(ep.X - sp.X, ep.Y - sp.Y) Elems.Transform(m) End Sub11 图形对象的选择技术1 绘图软件中,图形对象的管理是如何实现的?请写出图元类的结构定义。Public MustInherit Class clsElemPublic MustOverride Sub Draw(g As Graphics)End ClassClass clsLineInherits clsE

26、lem Public Overrides Sub Draw(g As Graphics) g.DrawLine(CommonPen, Sp, Ep) End SubEnd ClassPublic Class clsElems Public elems As List(Of clsElem) Public Sub Draw(ByVal g As Graphics) For i = 0 To elems.Count - 1 elems(i).Draw(g) Next End SubEnd Class1 绘图软件中,图形对象的点选择,是如何实现的?请写出相关的类中的方法接口。Public MustI

27、nherit Class clsElemPublic MustOverride Function SelectByPoint(ByVal p As PointF) As BooleanEnd ClassClass clsLineInherits clsElem Public Overrides Function SelectByPoint(ByVal p As PointF) As Boolean .End FunctionEnd ClassPublic Class clsElems Public Function SelectByPoint(ByVal p As PointF)as clsE

28、lem For i = 0 To Elems.Count - 1 If Elems(i).SelectByPoint(p) = True Then Return Elems(i) End If Next Return Nothing End SubEnd Class1 已知两点坐标p1(x1,y1), p2(x2,y2),请写出直线段的参数方程;并写出点p(x0,y0)与直线段p1p2的距离计算方法。直线段的参数方程 直线段的单位方向向量: 过任一点p(x0,y0)垂直于p1p2的直线方程: 计算式1与式2的交点。若t =0, 1,则存在交点。否则不存在交点。 12 图形对象的层次结构1 良好

29、的绘图软件,应该支持层次化的图形对象结构。请写出自定义块类和块插入对象类的定义。 块:保管着被选择的图形对象的副本的集合 Public Class clsBlock Private Elems As List(Of clsElem)Private BasePoint As PointFEnd Class 块插入对象:保管着块的引用,及变换矩阵 Public Class clsBlockInsert Inherits clsElem Private Block As clsBlockPrivate M As clsMatrix3 对Block中所有图形对象的变换矩阵End Class1 良好的绘

30、图软件,应该支持层次化的图形对象结构。请写出块插入对象类的绘图函数定义。Public Class clsBlockInsert Inherits clsElem Private Block As clsBlock Private M As clsMatrix3 对Block中所有图形对象的变换矩阵 Public Overrides Sub Draw(ByVal g As Graphics) For i = 0 To Block.Count - 1 Block.Item(i).Draw(g, M) Next End Sub13 图形对象的属性管理1 在绘图软件中,层对象是如何实现属性管理的?Public Class clsLayer Public Name As St

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1