分享
 
 
 

在绘图页上绘制,输出简单图样

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

http://216.5.163.53/DirectX4VB/Tutorials/DirectX7/DD_Primatives.asp

虽然许多在DDraw下的绘制图形化内容的工作都是通过直接加载既存的图形和文本到绘图页上来完成的,但是总有一天,你将面临仅仅要在程序中使用到简单图样(简单图样特指以下要提到的几种)的情形,在DDraw内部已经内建了对在绘图页上输出简单图样的支持,可以在绘图页上输出如下几种简单图样:

普通矩形(可以是方形)

封闭的矩形

圆圈

椭圆形

线条

你还可以为上述几种简单图样填充图案和填充颜色.一个很诱人的技术是,你可以把颜色键和本章谈到的简单图样输出技术组合起来使用,颜色键不是本章要谈到的,当是我们这里假设你学过这方面的知识,比如当你定义了一个目标绘图页颜色键之后(此时你定义了一种固定的颜色,且你将贴图到这种颜色之上),到本章的最后,你将有能力运用简单图样创建一个图形,然后再使用向目标绘图页的一次blit过程拷贝一段文本到目标绘图页上(根据你定义的目标绘图页的颜色键,你实际上把文本拷贝到了这种颜色之上),更深一层的这方面的知识将在以后的章节中作更加详尽的讲解.

绘制简单图样1:绘制普通矩形(长方形)

普通矩形通常是一个长方形,也可以是一个正方形,当它的宽高都一致时它就是一个正方形了,因为正方形只是长方形的特例,因此并不把它从本小节("绘制普通矩形")的讨论范围里分离而另为它求一个解决之道.

Surface.DrawBox(x1 As Long, y1 As Long, x2 As Long, y2 As Long)

以上是一个函数调用,功能是绘制一个矩形,参数分别是矩形的左上角坐标,矩形的右下坐标值,请务必保证你传递的坐标值是一个实际存在的值;比如.如果你当前屏幕大小是640*480,你就不能定义x1或x2为-1,因为这个值是不存在的,y1或y2同样的也就不能定义为641,如果你发现你绘制的简单图样不在屏幕上出现,原因之一可能是你把它绘制到了屏幕外面(但程序并不因此而出错),因为DDraw并不自动裁剪你绘制的简单图样,如果这个简单图样上哪怕是有一个像素绘制到了不存在的绘图页区域,DDraw就会忽略整个函数过程,所以并不绘制任何东西,除非你编程使得绘图页的大小适应这个矩形,但是即使你这样做了,DDraw虽然可以不致于什么东西也不绘制,但依然只会绘制矩形的四边而不填充它的中间(这是DDraw绘制一个普通矩形的默认处理方法).

绘制简单图样2:绘制封闭的矩形

封闭矩形几乎跟上面的普通矩形一模一样,只有一种情况例外,那就是矩形的某个角被轻微地柔化弯曲的时候.

Surface.DrawRoundedBox(x1 As Long, y1 As Long, x2 As Long, y2 As Long, rw As Long, rh As Long)

打头的四个参数跟绘制普通矩形的四个是一样的意义,只有最后二个是新的,这二个参数定义了柔化弯曲矩形的某个角的2个要使用到的量,第一个是水平方向的,对应第二个参数就是垂直方向的了,通过改变这二个量,你可以控制柔化弯曲度,这二个量可以在矩形不被柔化弯曲成一个椭圆或圆圈之前有效.

绘制简单图样3:绘制圆圈

这是另外一种简单的图样效果,但是比起前面绘制矩形的方法来讲要进行多一点的考虑.

Surface.DrawCircle(x1 As Long, y1 As Long, r As Long)

是不是看起来很简单?x和y分别是圆的中心点,r就是半径了,虽然简单,可是很多人依然会被这些参变量代表的实际意义搞昏头,跟上面绘图矩形的情况比起来,一个微小的差别就是搞清绘制的位置以避免绘制出界的问题,圆圈作为简单图样的一种与矩形等规则图样比较,对它的出界考虑要特殊一点,如果x1,y1都是100,r就可定义为100,而如果x1为100,y1为70,你就得定义r为70了,取x1,y1的最小值,尽管这个道理很简单,依然有很多人在理解上述函数过程中存在问题.

绘制简单图样4:绘制椭圆

一个椭圆外观上类似一个矩形,下面的绘制一个椭圆的函数也跟绘制一个矩形的函数相似.

Surface.DrawEllipse(x1 As Long, y1 As Long, x2 As Long, y2 As Long)

你只要传递给这个函数于绘制一个矩形时用到的四个参数就行了,实际上,此时DDraw在以上四个参数定义的一个矩形内部绘制了这个椭圆.

绘制简单图样5:绘制直线

Surface.DrawLine(x1 As Long, y1 As Long, x2 As Long, y2 As Long)

传递给这个函数的四个参数与绘制一个椭圆和矩形的情况很相似,但是虽然在赋同样值的情况下,这三个函数出来的效果是完全不一样的,这个函数过程是最简单的,DDraw只在x1,y1定义一个点和x2,y2定义的另一个点这二个点之间绘制一条直线.

绘制直线可能是最简单的了,最却是最有用的,比如直线可以划分屏幕上的显示内容以提供视觉上的区分,关于直线有一种很经典的应用,可以构造迷人的图形效果,那就是按渐变来绘制一条直线,这样绘制出来的直线本质上就是大量不同颜色的直线构成的...

为你的简单图样填充颜色..

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有