㈠ UG编程怎么进行2D编程
1、进入UG2D加工模块,采用2D外形线加工功能。
㈡ Quartz 2D编程指南 (四) —— Paths路径(一)
路径定义一个或多个形状或子路径。 子路径可以包含直线,曲线或两者。 它可以是开放的或封闭的。 子路径可以是简单的形状,例如线,圆,矩形或星形,或者更复杂的形状,例如山脉的轮廓或抽象涂鸦。 图3-1显示了您可以创建的一些路径。 直线(图中左上角)是虚线;线条也可以是实心的。 弯曲的路径(在中间的顶部)由几条曲线组成,是一条开放的路径。 同心圆被填充,但没有被描边。 加利福尼亚州是一条封闭的道路,由许多曲线和线条组成,路径既有描边也有填充。 星星说明了填充路径的两个选项,您将在本章后面阅读这些选项。
在本章中,您将了解构成路径的构建块,如何描边和绘制路径以及影响路径外观的参数。
路径创建和路径绘制是单独的任务。 首先,您创建一个路径。 如果要渲染路径,请求 Quartz 绘制它。 如图3-1所示,您可以选择描边路径,填充路径,或者描边和填充路径。 您还可以使用路径来约束路径边界内其他对象的绘制,实际上是创建剪切区域。
图3-2显示了已绘制的路径,其中包含两个子路径。 左边的子路径是一个矩形,右边的子路径是由直线和曲线组成的抽象形状。 每个子路径都被填充并且其轮廓被描边。
图3-3显示了独立绘制的多条路径。 每条路径都包含一条随机生成的曲线,其中一些曲线已填充,另一些曲线则被描边。绘图通过裁剪区域约束到圆形区域。
子路径由线,弧和曲线构成。 Quartz还提供了便捷功能,可通过单个函数调用添加矩形和椭圆。 点也是路径的基本构建块,因为点定义了形状的起始和结束位置。
点是x和y坐标,用于指定用户空间中的位置。 您可以调用函数 CGContextMoveToPoint 来指定新子路径的起始位置。 Quartz跟踪当前点,这是用于路径构建的最后位置。 例如,如果调用函数 CGContextMoveToPoint 将位置设置为(10,10),则会将当前点移动到(10,10)。 如果然后绘制一条长50个单位的水平线,则该线上的最后一个点(60,10)将成为当前点。 始终从当前点开始绘制直线,圆弧和曲线。
大多数情况下,通过向Quartz函数传递两个浮点值来指定一个点来指定x和y坐标。 某些函数要求您传递 CGPoint 数据结构,该结构包含两个浮点值。
一条线由其端点定义。 它的起始点始终假定为当前点,因此在创建线时,只指定其端点。 使用函数 CGContextAddLineToPoint 将单行线附加到子路径。
您可以通过调用函数 CGContextAddLines 将一系列连接的线添加到路径中。 您将此函数传递给一系列点。 第一点必须是第一行的起点,剩下的点是端点。 Quartz在第一个点开始一个新的子路径,并将一个直线段连接到每个端点。
弧是圆弧段。 Quartz提供了两个创建弧的函数。 函数 CGContextAddArc 从圆创建一个弯曲的段。 您可以指定圆的中心,半径和径向角(以弧度表示)。 您可以通过指定 2 pi 的径向角度来创建整圆。 图3-4显示了独立绘制的多条路径。 每条路径包含一个随机生成的圆;有些被填满,有些被描边。
当您想要对矩形的角进行圆角时, CGContextAddArcToPoint 函数是理想的选择。 Quartz使用您提供的端点来创建两条切线。 您还提供了Quartz切割圆弧的圆的半径。 弧的中心点是两个半径的交点,每个半径垂直于两条切线中的一条。 弧的每个端点都是其中一条切线上的切点,如图3-5所示。 圆圈的红色部分实际上是绘制的。
如果当前路径已包含子路径,则Quartz会将当前点的直线段附加到弧的起始点。 如果当前路径为空,Quartz会在弧的起始点创建一个新的子路径,并且不会添加初始直线段。
二次和三次Bézier曲线是代数曲线,可以指定任意数量的有趣曲线形状。 通过将多项式公式应用于起点和终点以及一个或多个控制点来计算这些曲线上的点。 以这种方式定义的形状是矢量图形的基础。 公式比位数组更紧凑更容易存储,并且具有可以在任何分辨率下重新创建曲线的优点。
图3-6显示了通过独立绘制多个路径创建的各种曲线。 每条路径包含一条随机生成的曲线;有些被填满,有些被描边。
在许多数学文本和描述计算机图形的在线资源中讨论了产生二次和三次Bézier曲线的多项式公式,以及如何从公式生成曲线的细节。 这里不讨论这些细节。
使用 CGContextAddCurveToPoint 函数,使用您指定的控制点和端点,从当前点追加三次贝塞尔曲线。 图3-7显示了由图中所示的当前点,控制点和端点产生的三次Bézier曲线。 两个控制点的放置决定了曲线的几何形状。 如果控制点都在起点和终点之上,则曲线向上拱起。 如果控制点都低于起点和终点,则曲线向下拱起。
您可以通过调用 CGContextAddQuadCurveToPoint 函数并指定控制点和端点,从当前点追加二次Bézier曲线。 图3-8显示了使用相同端点但控制点不同的两条曲线。 控制点确定曲线拱起的方向。 由于二次曲线仅使用一个控制点,因此不可能使用二次贝塞尔曲线创建尽任意多的有趣形状。 例如,无法使用单个控制点创建交叉。
要关闭当前子路径,应用程序应调用 CGContextClosePath 。 此函数添加从当前点到子路径起点的线段,并关闭子路径。 以子路径起点结束的直线,圆弧和曲线实际上不会关闭子路径。 您必须显式调用 CGContextClosePath 才能关闭子路径。
一些Quartz函数将路径的子路径视为应用程序关闭它们。 这些命令将每个子路径视为您的应用程序调用 CGContextClosePath 来关闭它,隐式地将一个线段添加到子路径的起始点。
关闭子路径后,如果应用程序进行额外调用以向路径添加直线,圆弧或曲线,Quartz将从刚刚关闭的子路径的起点开始一个新的子路径。
椭圆本质上是一个压扁的圆圈。 您可以通过定义两个焦点来创建一个焦点,然后绘制位于一定距离的所有点,以便将椭圆上任意点到一个焦点的距离加上到从该点到另一个焦点的距离这个和始终是相同的值。 图3-9显示了独立绘制的多条路径。 每条路径包含一个随机生成的椭圆;有些被填满,有些被描边。
您可以通过调用函数 CGContextAddEllipseInRect 将椭圆添加到当前路径。 您提供了一个定义椭圆边界的矩形。 Quartz使用一系列Bézier曲线近似椭圆。 椭圆的中心是矩形的中心。 如果矩形的宽度和高度相等(即正方形),则椭圆为圆形,半径等于矩形宽度(或高度)的一半。 如果矩形的宽度和高度不相等,则它们定义椭圆的长轴和短轴。
添加到路径的椭圆以移动操作开始,以关闭子路径操作结束,所有移动都以顺时针方向定向。
您可以通过调用函数 CGContextAddRect 将矩形添加到当前路径。 您提供了一个CGRect结构体,其中包含矩形的原点及其宽度和高度。
添加到路径的矩形以移动操作开始,以关闭子路径操作结束,所有移动都以逆时针方向定向。
您可以通过调用 CGContextAddRects 函数并提供CGRect结构数组,将许多矩形添加到当前路径。 图3-10显示了独立绘制的多条路径。 每个路径包含一个随机生成的矩形;有些被填满,有些被描边。
如果要在图形上下文中构造路径,可以通过调用函数 CGContextBeginPath 来发出 Quartz 信号。接下来,通过调用函数 CGContextMoveToPoint ,在路径中设置第一个形状或子路径的起点。建立第一个点后,可以在路径中添加直线,圆弧和曲线,请记住以下内容:
绘制路径后,将从图形上下文中刷新它。您可能不希望如此轻易地丢失路径,特别是如果它描绘了您想要反复使用的复杂场景。因此,Quartz提供了两种用于创建可重用路径的数据类型- CGPathRef 和 CGMutablePathRef 。您可以调用函数 CGPathCreateMutable 来创建可变的 CGPath 对象,您可以在其中添加直线,圆弧,曲线和矩形。 Quartz提供了一组CGPath函数,这些函数与 The Building Blocks 中讨论的函数并行。路径函数在 CGPath 对象上运行,而不是在图形上下文上运行。这些函数是:
有关路径函数的完整列表,请参阅 Quartz 2D Reference Collection 。
如果要将路径附加到图形上下文,请调用函数 CGContextAddPath 。路径保留在图形上下文中,直到 Quartz 绘制它。您可以通过调用 CGContextAddPath 再次添加路径。
㈢ 2D游戏编程需要什么软件
你可以先去【绘学霸】网站找“游戏设计/游戏制作”板块的【免费】视频教程-【点击进入】完整入门到精通视频教程列表: www.huixueba.net/web/AppWebClient/AllCourseAndResourcePage?type=1&tagid=307&zdhhr-11y04r-418365887
想要系统的学习可以考虑报一个网络直播课,推荐CGWANG的网络课。老师讲得细,上完还可以回看,还有同类型录播课可以免费学(赠送终身VIP)。
自制能力相对较弱的话,建议还是去好点的培训机构,实力和规模在国内排名前几的大机构,推荐行业龙头:王氏教育。
王氏教育全国直营校区面授课程试听【复制后面链接在浏览器也可打开】: www.huixueba.com.cn/school/3dmodel?type=2&zdhhr-11y04r-418365887
在“游戏设计/游戏制作”领域的培训机构里,【王氏教育】是国内的老大,且没有加盟分校,都是总部直营的连锁校区。跟很多其它同类型大机构不一样的是:王氏教育每个校区都是实体面授,老师是手把手教,而且有专门的班主任从早盯到晚,爆肝式的学习模式,提升会很快,特别适合基础差的学生。
大家可以先把【绘学霸】APP下载到自己手机,方便碎片时间学习——绘学霸APP下载: www.huixueba.com.cn/Scripts/download.html