《毕业设计(论文)基于VC++的平面曲线绘制.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于VC++的平面曲线绘制.doc(24页珍藏版)》请在三一办公上搜索。
1、2012届学生毕业设计(论文)材料(四)学 生 毕 业 设 计(论 文)课题名称基于VC的平面曲线绘制姓 名学 号院 系信息科学与工程学院专 业计算机科学与技术指导教师2012年 5月30日湖南城市学院本科毕业设计(论文)诚信声明本人郑重声明:所呈交的本科毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 本科毕业设计作者签名: 二 年 月 日目 录摘
2、要:1关键词:1ABSTRACT:2KEY WORDS:21绪论31.1 本文的主要结构31.2 研究背景和意义31.3 研究内容41.4 国内外研究现状42技术背景介绍62.1计算机图形学的发展历程及应用前景62.1.1计算机图形学的发展简史62.1.2计算机图形学的应用62.1.2.1计算机辅助设计与制造62.1.2.2科学计算可视化72.1.2.3图形实时绘制与自然景物仿真72.1.2.4计算机动画72.1.2.5计算机艺术82.1.3计算机图形学发展前景82.2 Visual C+ 6.082.2.1 Visual C+ 6.0的简介82.2.2 Visual C+ 6.0特色和缺点9
3、3贝塞尔(BEZIER)曲线的绘制93.1 贝塞尔曲线的介绍93.2 Bezier曲线的性质103.3 三次Bezier曲线绘制104三次B样条曲线的绘制124.1 三次B样条曲线的介绍124.2 三次B样条曲线的性质134.3 三次B样条曲线的绘制:144.4 程序运行效果图155正叶线155.1 正叶线155.2 正叶线源码及效果图16结论18参考文献:19致谢20基于VC的平面曲线绘制摘 要:在我们的生活当中,曲线扮演着十分重要的角色,很多地方我们都需要用到曲线,本论文致力于对曲线的研究,在介绍计算机图形学算法及原理基础上,利用Visual C+开发环境中数据范围可变时确定坐标轴刻度和绘
4、制平面曲线的方法,根据提供的图形数据的参数曲线方程,参数的几何意义,最大和最小的参数值,参数最合适的取值。利用这些参数和图形数据绘制出该平面曲线的的图形,本文将会介绍几种经典的平面曲线,这些曲线在实际的生活中扮演的很重要的角色,很多工程的实现都需要用到这些,本论文将会教会大家怎样绘制平面曲线。介绍在绘制曲线的过程需要注意哪些关键的东西。还会具体的分析该曲线所具有哪些属于自己的关键性质。关键词:Visual C+;平面曲线;计算机图形学。 Plane curves based on VC Abstract: Curve plays a significant role in our life a
5、nd is used by us in a great many of areas, hence the objective of this dissertation is researching curve. The dissertation based on the introduction of computer graphics calculation and theory, it guarantees the graduation of coordinate axis and method of drawing plane curve through utilizing the ch
6、angeability of data range in Visual C+ development environment. In addition , it also based on graphics data of parameter of curve equation, geometric significance, the maximum and minimum and suitable value which are provided. Then, drawing the graphics of plane curve through these parameters and g
7、raphics data. This article introduce several categories of classical plane curves as well, these curves play an vital role in real life, they are important for a vast number of engineering achievements, The thesis will teach people how to draw plane curve, and the key information that we need to not
8、ice during the process of drawing plane curve, simultaneity, it will analyse particularlly which pivotal character the curve belongs to as well. Key words: Visual C+ , Plane curve, Computer graphics 1 绪论1.1 本文的主要结构第一部分主要介绍本论文的研究背景和意义、论文主要研究的内容、国内外最新的研究成果第二部分主要介绍计算机图形学的发展史和Visual C+ 6.0的发展情况第三部分详细介绍几
9、种平面曲线及其实现过程1.2 研究背景和意义计算机辅助几何设计始兴于20世纪60年代,最初始于飞机、船舶的外形放样工艺。在当时计算机发展的影响下,为了利用计算机更高效地进行设计,人们开始寻找研究曲线或曲面的表示方法,其中最著名、最实用的是法国雷诺汽车公司的工程师提出的Bezier技术1和美国机械工程师Coons提出的Coons技术2,3。在大多数情况下,描述产品外形的曲线或曲面只有大概形状或者只知道它所通过的一系列空间点列,这些点称为控制点,这类曲线或曲面叫自由曲线或自由曲面,而计算机辅助几何设计就是研究自由曲线曲面的表示、设计、显示、分析与综合以及处理等问题。B样条曲线是Bezier曲线的改
10、进,对于Bezier曲线来说,特征多边形顶点个数决定了Bezier曲线的阶次,并且当n较大时,特征多边形对曲线的控制将会减弱。改变一个控制顶点的位置 会影响整个曲线的形状,这不利于对曲线的局部修改,且Bezier曲线在很多情况下不能反映特征多边形的特点。19721974年Gorden等将Bezier的基函数换成B样条函数,从而构造了等距离节点的B样条曲线,也称为均匀B样条曲线。B样条曲线的应用范围非常广泛,不仅在几何造型方面,还应用到其它许多方面,如应用B样条函数处理力学问题4,结合小波方法应用于图像的完整性认证5,应用于实验数据的压缩6,应用于一维、二维空间中轨迹的规划7等。B样条曲线的应用
11、范围还在不断的扩大,同时也在不断的改进,因此对它的研究具有一定的应用价值和推广价值。B样条曲线造型方法的理论基础是B样条,下面从B样条的定义和性质,以及各种B样条曲线的定义和程序实现方法进行阐述。1.3 研究内容本论文主要基于VC+程序实现对平面曲线的绘制,论文中将会具体提供对下面几种平面曲线的绘制算法。贝塞尔(Bezier)曲线的绘制B样条曲线的绘制正叶线绘制1.4 国内外研究现状Bezier曲线的提出是1962最先由贝齐尔开始的,它最初的研究是面向几何而不是面向代数。Bezier曲线提出之后在20世纪80年中后期在工业界和CAGD学术界就产生了极大的影响,并在计算机辅助设计/制造(CAD/
12、CAM)领域中得到了广泛应用,一直以来都有很多学者对它进行研究。由于它常常应用于不同造型系统,而不同造型系统之间经常需要进行几何描述信息的数据交换或数据集成,因此,降阶运算作为Bezier曲线的基本运算就具有非常重要的意义。因而,降阶逼近算法的理论研究也就一直成为了研究的热点。对Bezier曲线的降阶问题的研究大致可分为如下两类:一类是基于控制顶点几何信息的离散化方法,这类方法主要着眼于原曲线的控制顶点和导矢等几何信息进行降阶。在国外,最早由Forrest于1972年在“Algorithms forrational Bezier curves”9中提出,但是误差较大;80年代 Farin在“A
13、lgorithms forrational Bezier curves”中对有理Bezier曲线、曲面的降阶进行了研究10,Pank的“Degree Reduction of Bezier Curves”等改进了Forrest的方法11,得到了较好的效果;而Moore和Warren的“Least-Square Approximation to Bzicurvsand Surfaces”12通过原曲线与待求曲线所围面积的极小来反求降阶后曲线的控制顶点,给出了一种降阶算法;Lodha 和 Warren 的“Degreere Duction of Bezier Simplexes”13的算法进一步考
14、虑了一般的Bezier单形A,利用插值和凸组合技巧,先构造k个d次的Bezier单形Ak,d0 时,没有显式解存在,必须通过诸如修正的Remes算法等数值方法来。梁秀霞、张彩明、徐琳、张爱武的“L范数下使用基本曲线和修正曲线的带约束 Bezier 曲线降阶”为避免直接求解基于L距离的带约束逼近的非线性最优解引起的复杂性,提出了一种把降阶逼近曲线分解为基本曲线和修正曲线的降阶方法,利用约束Legendre多项式可得到显式解,且保证降阶后曲线要求的边界插值条件,修正曲线的控制顶点由降阶逼近曲线和原曲线的差定义,能够在L范数意义下极小化降阶逼近曲线与原曲线的误差,文中方法以简单稳定的方式实现保端点插
15、值的一次降多阶,并达到L范数意义下对原曲线的近似最佳逼近。虽然Bezier曲线的降阶问题研究得比较多,但都很少有讨论采用中点分割与基本降阶相结合并考虑误差具体进行一次降二阶的情况。2 技术背景介绍2.1计算机图形学的发展历程及应用前景计算机图形学(ComputerGraphics简称CG是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格式的科学。简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。图形通常由点、线、面、体等几何元素和灰度、色彩、线型、线宽等非几何属性组成。从处理技术上来看图形主要分为两类,一类是基
16、于线条信息表示的,如工程图等高线地图、曲面的线框图等,另一类是明暗图,也就是通常所说的真实感图形。经过30多年的发展,计算机图形学已成为计算机科学中最为活跃的分支之一,并得到广泛的应用。本文将介绍计算机图形学的研究内容、发展历史,应用和图形学前沿的方向。2.1.1计算机图形学的发展简史1950年,第一台图形显示器作为美国麻省理工学院(MIT)旋风号一(Whirlwind)计算机的附件诞生了。该显示器用一个类似示波的阴极射线管(CRT)来显示一些简单的图形。在整个50年代,只有子管计算机,用机器语言编程,主要应用于科学计算,为这些计算机置的图形设备仅具有输出功能。计算机 图形学处 于准备和酝酿时
17、期并称之为:“被动式”图形学。1960年,伊凡?苏泽兰在麻省理工学院发表了名为画板的博士论文,它标志着计算机图形学的正式诞生。此前的计算机主要是符号处理系统,自从有了计算机图形学,计算机可以部分地表现人的右脑功能了,计算机图形学的建立意义重大。2.1.2计算机图形学的应用2.1.2.1计算机辅助设计与制造CADCAM是计算机图形学在工业界最广泛最活跃的应用领域。计算机图形学被用来进行土建工程机械结构和产品的设计,包括设计飞机、汽车、船舶的外形和发电厂、化工厂等的布局以及电子线路、电子器件等。有时,着眼于产生工程和产品相应结构的精确图形,然而更常用的是对所设计的系统产品和工程的相关图形进行人机交
18、互设计和修改。经过反复的选代设计,便可利用结果数据输出零件表、材料单、加工流程和工艺卡。或者数据加工代码 的指令。在电子工业中,计算机图形学应用到集成电路印刷电路板电子线路和网络分析等方面的优势十分明显。CAD领域另一个非常重要的研究领域是基于工程图纸的三维形体重建。三维形体重建是从二维信息中提取三维信息。通过对 这些信息进行分类。综合等一系列处理,在三维空间中重新构造出二维信息所对应的三维形体,恢复形体的点、线 、面及其拓扑关系,从而实现形体的重建 。2.1.2.2科学计算可视化目前科学计算可视化广泛应用于医学,流体力学,有限元分析,气象分析当中。尤其在医学领域。可视化有着广阔的发展前途。依
19、靠精密机械做脑部手术是目前医学上很热门的课题。而这些技术的实现的基础则是可视化。当我们做脑部手术时可视化技术技术将医用CT扫描的数据转化成图像使得医生能够看到并准确的判别病人的体内患处然后通过碰撞检测一类的技术实现手术效果的反馈,帮助医生成功完成手术。我们利用了可视化技术。2.1.2.3图形实时绘制与自然景物仿真重现真实世界的场景叫做真实感绘制。真实感绘制主要是模拟真实物体的物理属性,简单的说就是物体的形状光学性质,表面的纹理和粗糙程度,以及物体间的相对位置,遮挡关系等等。在自然景物仿真这项技术中我们需要过行消除隐藏线及面、明暗效应、颜色模型、纹理、光线跟踪,辐射度等工作。这其中光照和表面属性
20、是最难摸拟的。而且还必须处理物体表面的明暗效应,以便用不同的色彩灰度来增加图形的真实感。自然景物仿真在几何图形、广告影视、指挥控制。科学计算等方面应用范围很广 。2.1.2.4计算机动画随着计算机图形和计算机硬件的不断发展,计算机动画应运而生。事实上动画也只是生成一幅幅静态的图象,但是每一幅都是对前一幅小部分修改,如何修改便是计算机动画的研究内容,这样,当这些连续播放时,整个场景就动起来。早期的计算机动画灵感来源于传统的卡通片。在生成几幅被称作“关键帧”连续播放时2个关健帧就被有机的结合起来了。计算机动画内容丰富多彩,生成动画的方法也多种多样比如基于特征的图象变形,二维形状混合,轴变形方法,三
21、维自由形体变形等。近年来人们普遍将注意力转向基于物理模型的计算机动画生成方法。这是一种崭新的方法,该方法大量运用弹性力学和流体力学的方程进行计算,力求使动画过程体现出最适合真实世界的运动规律。然而要真正到达真实运动是很难的,比如人的行走或跑步,要实现很自然的人走路的画面,计算机方程非常复杂和计算量极大,基于物理模型的计算机动画还有许多内容需要进一步研究 。2.1.2.5计算机艺术用计算机从事艺术创作。计算机图形学除了广泛用于艺术品的制造,如各种图案、花纹及传统的油画、中国国画等。还成功的用来制造广告、动画片甚至电影,其中有的影片还获得了奥斯卡奖。这是电影界最高的殊荣。目前国内外不少人士正在研制
22、人体模拟系统,这使得在不久的将来把历史上早已去世的著名影视明星重新搬上新的影视片成为可能。这是一个传统的艺术家无法实现也不可想象的。2.1.3计算机图形学发展前景综观计算机图形学的发展,我们发现图形学的发展迅速并且已经成为一门独立的学科,傲站在科学的前端。计算机图形学的已经应用到各个领域。比如计算机辅助设计与制造。自然景物仿真和计算机动画。在我们的生活到处可见,使我们的生活变的绚丽多彩。还有将可视化用于天气预报。使气象预报越来越准确;用于地质堪探,使地质学家可以发现新资源;用于医学做些精密的手术提高了人们的寿命等。总之计算机图形学的应用给人类带来了很多益处。在促进人们物质水平提高的同时也给我们
23、带来的精神上的享受。2.2 Visual C+ 6.02.2.1 Visual C+ 6.0的简介Visual C+ 6.0,简称VC或者VC6.0,是微软推出的一款C+编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。Visual C+是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C+1.0后,随着其新版本的不断问世,Visual C+已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了 Visual C+.NET(Visual C+7.0),但它的应用有很大的局限性,只适用于Windows 2000、Windows XP和Windo
24、ws NT4.0。所以实际中,更多的是以Visual C+6.0为平台。2.2.2 Visual C+ 6.0特色和缺点特色:Visual C+6.0由Microsoft开发, 它不仅是一个C+ 编译器,而且是一个基于Windows操作系统操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C+6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。Microsoft的主力软件产品。V
25、isual C+是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C+1.0后,随着其新版本的不断问世,Visual C+已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了Visual C+.NET(Visual C+7.0),但它的应用的很大的局限性,只适用于Windows 2000,Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C+6.0为平台。Visual C+6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代
26、码,而不必重新启动正在调试的程序。其编译及创建预编译头文件(satafx.ch)、最小重建功能及累加连结(link)著称。这些特征明显缩短程序编辑、编译及连结的时间花费,在大型软件计划上尤其显著。缺点:由于C+是由C语言发展起来的,也支持C语言的编译。6.0版本是使用最多的版本,很经典。最大的缺点是对于模版的支持比较差。现在最新补丁为SP6,推荐安装,否则易出现编译时假死状态。仅支持Windows操作系统。目前发现与windows 7兼容性不好,安装成功后可能会出现无法打开cpp文件的现象。3 贝塞尔(Bezier)曲线的绘制3.1 贝塞尔曲线的介绍一般地说,可以用任何数目的控制点拟合出一条B
27、ezier曲线,但这需要计算更高次的多项式。复杂曲线可以由一些较低次数的Bezier曲线段连接而成,较小的曲线段连接也便于更好地控制小区域内的曲线形状,最常使用的是三次Bezier曲线。三次Bezier曲线由四个控制点P0、P1、P2、P3定义:其中,Pk为特征多边形第k个顶点的坐标值(xk,yk,zk),而基函数Bk,n(u)的定义如下 (k0,1,.,n)函数Bk,n(u)称为Bernstein多项式,其中 为组合公式。u的取值范围为0,1,n是多项式次数, 也是曲线次数。三次Bezier曲线写成坐标分量的形式如下: x(u)(-u33u23u1)x0(3u36u23u)x1(-3u33u
28、2)x2u3x3 y(u)(-u33u23u1)y0(3u36u23u)y1(-3u33u2)y2u3y3 z(u)(-u33u23u1)z0(3u36u23u)z1(-3u33u2)z2u3z3 实际生成曲线时,取一合适的步长,控制u从0到1变化,求出一系列(x, y)坐标点,将其用小线段顺序连接起来,就可以得到一条Bezier曲线。3.2 Bezier曲线的性质(1)曲线的起点和终点同特征多边形的起点和终点重合(2)Bezier曲线在端点处的一阶导数只同相近的两个控制点有关,其方向相同于两点的连线方向。(3)凸包性:Bezier曲线落在特征多边形顶点所形成的凸包内。(4)几何不变性:曲线的
29、形状由特征多边形的顶点唯一确定,与坐标系的选取无关。3.3 三次Bezier曲线绘制void CMyView:OnDraw3bezier() RedrawWindow();float coeff_x4;float coeff_y4;float points_xnPoints+1; float points_ynPoints+1; int degree,i,j; degree=3; CClientDC *pdc=new CClientDC(this); CPen pen; pen.CreatePen(PS_SOLID,1,RGB(0,0XFF,0); CPen *oldpen=(CPen*)pd
30、c-SelectObject(&pen); pdc-TextOut(200,150,三次Bezier曲线); double delt;coeff_x0=10; coeff_x1=30; coeff_x2=40; coeff_x3=40;coeff_y0=10; coeff_y1=5; coeff_y2=13; coeff_y3=30; pdc-MoveTo(110,110); for(j=0;jLineTo(10+10*coeff_xj,10+10*coeff_yj); delt=float(1.0/nPoints); double t=0.0;pdc-MoveTo(110,110); for
31、(i=0;iLineTo(10+10*points_xi,10+10*points_yi);delete pdc;程序运行效果图:图3.2.1三次Bezier曲线4 三次B样条曲线的绘制4.1 三次B样条曲线的介绍工程上常用的是三次B样条曲线函数式为: u0, 1其中: 展开有:F0,3(u)(-u33u23u1 )/6;F1,3(u)(3u36u24)/6;F2,3(u)(-3u33u23u1 )/6;F3,3(u)u3 /6。写成坐标分量的形式如下:x(u)(-u3/6u2/2u/21/6)x0(u3/2 u22/3)x1(-u3/2u2/2u/21/6)x2u3x3/6y(u)(-u3/
32、6u2/2u/21/6)y0(u3/2 u22/3)y1(-u3/2u2/2u/21/6)y2u3y3/6z(u)(-u3/6u2/2u/21/6)z0(u3/2 u22/3)z1(-u3/2u2/2u/21/6)z2u3z3/6当u从0到1变化时,曲线将在P0到P3之间顺序地连续形成。4.2 三次B样条曲线的性质(1)严格的凸包性:曲线严格位于控制多边形的凸包内,如果u ui ,ui+1),piSelectObject(&pen);pdc-TextOut(100,50,三次B样条曲线);int cx,cy,i,n;n=9;double t,t2,t3,a0,a1,a2,a3,b0,b1,b2
33、,b3,dt,xa,ya;cx=10;cy=160;static int x4=30,60,120,220,y4=30,110,150,50;a0=(x0+4*x1+x2)/6;a1=-(x0-x2)/2;a2=(x2-2*x1+x0)/2;a3=-(x0-3*x1+3*x2-x3)/6;b0=(y0+4*y1+y2)/6;b1=-(y0-y2)/2;b2=(y2-2*y1+y0)/2;b3=-(y0-3*y1+3*y2-y3)/6;dt=1.0/n; for (i=0;iMoveTo(xa,ya); else pdc-LineTo(xa,ya);pdc-DeleteDC();/ TODO:
34、Add your command handler code here4.4 程序运行效果图 三次贝塞尔去效果图如图4.3.1所示: 图4.3.1三次B样条曲线5 正叶线5.1 正叶线正叶线是一种类似植物叶子形状的曲线,数学表达式为:R=asin(ntheta)X=rcos(theta) (a0,n=2,3,4,5,.)Y=rsin(theta)可以通过修改上述数学表达式,绘制由二重、三重的正叶线组成的美丽图形。5.2 正叶线源码及效果图void CMyView:OnDrawLeaf() CClientDC *pdc=new CClientDC(this);CPen pen;pen.Create
35、Pen(PS_SOLID,1,RGB(0,0XFF,0);CPen *oldpen=(CPen*)pdc-SelectObject(&pen);int a,n,cx,cy,gx,gy,flag,k;double r,p,th,x,y,pi;a=160;n=2; pi=3.14159;cx=320;cy=240;flag=0;k=200;for(p=1;p=0.2;p-=0.2)for(th=0;thMoveTo(gx,gy);/,RGB(255,0,0); flag=1;pdc-LineTo(gx,gy);flag=0;pdc-DeleteDC();程序运行效果图如图5.2.1所示: 图5.2
36、.1正叶线结 论2012年的3月,我开始准备我的毕业设计论文,时至今日,论文基本已经完成,从当初拿到题目的茫然,随后开始到处找资料,慢慢开始有些思路,到现在的思路清晰,整个过程充满努力的汗水,无法用三言两语就能表达,如今毕业设计已经差不多完成了,我时常在想,毕业设计的完成预示着什么?预示我即将大学毕业,即将离开我心爱的母校,去外面的社会闯荡,开始我新的生活。2012年12月,当我知道我的选题通知后,我开始着手准备论文,开始的,对于论文的题目都有些不懂,不明白论文要写那些方面,而且既然决定开始写的话,就必须确定自己要写那些方面,于是我主动去找我的导师,卜飞宇老师,及时与他沟通,通过老师的耐心指导
37、和帮助,我确立了我要写的方向。寒假在家的时候,我时常去网上查找我与我题目相关的资料,还认真的带了本笔记本,记录了许多重要的信息,还对很多信息进行的比较,选择最有利我论文的资料。 老师对于我准备的资料抱有了肯定的态度,我一起讨论我准备的东西,从中找出那些东西可以再论文中用到,那些不能用,2012年2月,由于自己觉得很多专业知识不够,因此在外面开始培训,至此不能经常跟老师见面,不够还是经常电话和网上交流论文的相关信息。2012年3月,学校开始要求我们交开题报告,由于自己有做过相关的准备,因此很快就完成的任务。4月中旬,学校要求我们准备毕业设计论文的一稿。经常许多时间准备,顺利的做完了初稿,老师对我
38、的初稿进行了很多了改动,说很多地方还不合格,因此我针对老师要求改动的地方做了改变。5月初,我将改动后的2稿交给了老师。现在论文已经有1万多字了,基本符合的学校的要求,但我知道我还没有完成,我还需要准备我的最终3稿和毕业答辩。这就是我毕业设计的准备过程,有许多的困难,但是我最后还是挺过来了,感谢卜老师的帮助,没有你的帮助,我不可能这么顺利的完成。参考文献1 Bezier P E.Example of an existing system in motorindustry:theUNISURFsystem J.ProcRoySocofLondon,1971,A321:207-218.2 Coons S A.Sunfaces for computer aided design of spacfrms R.Cambridge Mass:MIT Project MAC-TR-255,