如何用编程猫画正方形(编程猫怎么画长方形)

http://www.itjxue.com  2023-03-17 06:52  来源:未知  点击次数: 

编程猫如何建设的方块怎么修改

1、首先打开编程猫软件主界面,在主界面点击上方编辑。

2、其次选择建设的方块项目设计进入。

3、最后点解数值进行修改即可。

用编程语言实现一个正方形360°旋转? 下面是我写的一个画正方形的代码! 我想要的是算法。要求完整代码。

WINDOWS图像编程

--------------------------------------------------------------------------------

图形设备接口(GDI,Graphics Device Interface)的主要目标之一是支持在输出设备(如视频显示器、打印机和绘图仪)上的与设备无关的图形。 GDI通过将应用程序与不同输出设备特性相隔离,使Windows应用程序能够毫无问题地在Windows支持的任何图形输出设备上运行。

Windows中的图形基本上是由从GDI.EXE模块中输出的函数处理的(尽管一些绘制函数实际上具有USER.EXE的入口点),GDI.EXE模块调用在不同驱动程序文件中的例程,其中有一个.DRV驱动程序文件用于控制显示屏幕,并且可能有一个或多个其他的.DRV驱动程序文件用来控制打印机或绘图仪。

Windows GDI使用两种坐标系统。使用虚拟坐标系统可以使程序不依赖于具体的硬件,使用设备坐标系统可以使程序和硬件紧密相联。

GDI含有在Windows应用程序内部执行、且与设备无关的图形操作函数,这些函数可产生各种各样的线、正文和位图,它们可以输出到许多不同的输出设备上。GDI允许一个应用程序产生笔、刷子、字体和位图,以供特定的输出操作使用。下面列出GDI中几组比较常用的函数:

·设备上下文函数

·椭圆和多边形函数

·绘图工具函数

·位图函数

·绘图属性函数

·正文函救

·映射函数。

·坐标函数

·元文件(metafile)函数

·区域函数

·裁剪(clipping)函数·

窗口应用程序输出图形的操作步骤如下:

①取得指定窗口的当前显示设备上下丈,显示设备上下文实际上是一个数据结构,它包括该窗口的参数及各种图形、文字属性的现行设定值,它们对以后的图形、文字输 出命令起控制作用。

②选择用户坐标系及映射方式。

③设定用户坐标系中的观察窗口和设备坐标系中的显示视区。

④输出图形、文字和图象。

⑤释放所使用的显示设备上下文。

当想要在图形输出设备(例如屏幕或打印机)上绘制图形时,必须首先获得设备上下文的句柄。先给出这个句柄,Windows才允许程序使用设备,在GDI函数中将句柄作为一个参数传入,向Windows标明需要使用的设备。

设备上下文中包含许多属性,当GDI在不同的设备上工作时都要用到这些属性。使用这些属性可使GDI只关心起始和终止坐标的大小,而不必关心有关对象的其他属性,如颜色、背景等等,因为这些都是设备上下文的一部分。当需要修改这些属性时,只需调用一个修改设备上下文中属性的参数,以后的程序中都使用修改后的设备上下文属性。设备上下文是连接Windows应用程序、设备驱动程序以及输出设备的纽带。

获取设备上下文句柄有多种方法。最一般的方法是当处理一条消息时获得了设备上下文、并在退出窗口之前释放它。一般的处理方法如下:

在处理WM_PAINT消息时

case WM_PAINT:

hdc=BeginPaint(hwnd,ps

EndPaint (hwnd,ps);

其数据结构为:

HDC hWnd;

PAINTSTRUCT ps;

而在windows.h中定义了PAINTSTRUCT的数据结构。

type struct tagPAINTSTRUCT {

HDC hdC;

BOOL fErase;

RECT rcPaint;

BOOL fRestore;

BOOL flncUpdate;

BYTE rgbReserved[16];

}PAINTSTRUCT;

其中,hdc用于标识显式上下文,fErase指出背景是否重画,rcPaint是涂色矩形,其余的域均为保留。这里的hdc是BeginPaint返回的设备上下文句柄,有了从DeginPaint获取的设备上下文句柄,就可以也只能在ps指出的rcPaint的矩形内绘图,EndPaint调用使这一区域有效。

第二种方法如下所示,使用这种方法获取和释放设备上下文可以在整个用户区内画图,图形在整个用户区域内都有效:

hdC=GetDc (hwnd );

…画图操作…

ReleaseDC (hwnd , hdc );

使用下面第三种方法获取和释放设备上下文,可以在整个窗口内画图,图形在整个窗口内有效:

hdC=GetWindowDc(hwnd);

…画图操作…

ReleaseDc(hwnd,hdc);

使用下面第四种方法获取和释放设备上下文,可以在整个显示器区域内画图,图形在整个显示器区域内部有效:

hdc=CreateDC (lpszDriver ,lpszDevice ,lpszOutput , lpData);

…画图操作…

ReleaseDC(hdc);

其中lpszDriver指向设备驱动程序的DOS文件名(不带扩展名),lpszDevice指向专用设备名(例如Epson Fx-80),lpszOutput指向物理输出介质(文件或输出端口)的DOS文件名或设备名,lpData指向含有设备驱动程序的设备专用的初始化数据的DEVMODE数据结构。例如:

hdc=CreateDC("DISPLAY",NULL,NULL,NULL);

使用屏幕画图,而:

hdc= CreateDC ("IBMGRX","IBM Graphics","LPT1",NULL );

在打印机上输出图形,这里的lpData置为默认值,可以在WIN.INI中找到初始化值。

如果不需要获取设备上下文,即不需要在设备上下文中操作,只需了解有关设备上下文的信息,可以用如下语句:

hdcInfo = CreateDC (lpszDriver, lpszDevice,lpszOutput, lpData );

……

DeteteDC (hdcInfo);

另外,还可以使用设备上下文来对位图的内存进行控制,如下所示:

hdcMem = CreateCompatibleDC (hdc)

OeleteDc(hdcMem );

一个元文件是以二进制形式编码的GDI调用集合,可通过获取一个元文件设备上下文来建立一个文件:

hdcMeta=CreateMetaFile(lpszFilename);

……

hmf=CloseMetaFile(hdCMeta);

在元文件设备上下文有效期间,使用hdcMeta所进行的任何GDI调用都成为元文件的一部分,当调用CloseMetaFile时,设备上下文句柄变化无效,函数返回元文件(hmf)的句柄。

一个设备上下文通常涉及物理设备,如视频显示器、打印机等,所以需要获取有关该设备的信息,如显示器大小和彩色能力等。可以通过调用GetDeviceCaps函数来获取这样的信息:

nValue=GetDeviceCaps (hdc,nIndex);

这里的hdc标识设备上下文,nIndex确定返回值,它可以是window.h中所定义的28个标识符中的一个,例如nIndex=DRIVEVERSION,则该函数返回的是版本号。

真正影响在用户区域上绘制过程的设备上下文属性是“映射方式”,与映射方式属性密切相关的还有如下四个设备上下义属性:窗口原点、视窗原点、窗口范围和视窗范围。

Windows定义了八种映射方式,即:

这里的TWIP指的是1/1440英寸,in.代表英寸。

可以调用函数setMapMode(hdc,MapMode)来设置这八种映射方式中的一种。hdc用来标识设备上下文,nMapMode可以取MM_TEXT、MM_LOMETRIC、MM_HIMETRIC等八个值中的一个。在设置了映射方式之后,到下一次设置映射方式之前,Windows一直使用这种映射方式。如果想要获取当前的映射方式,可用:

nMapMode= GetMapMode (hdc)

在设置了映射方式之后,就规定了逻辑单位的大小和增量的方式,在GDI画图函数中,可以不必考虑这些内容而直接使用逻辑数字,如:

SetMapMode(hdc ,MM_TEXT);

TextOut(hdc,8 ,16,szBuffer ,nLength)

即正文从用户区域左起第八个象素,顶边起第16个象素的位置开始写操作。不管映射方式如何,Windows函数中所有坐标规定为-32768 到 32767之间的带符号短整救。

注意映射方式只是一个设备上下文属性,因此映射方式唯一起作用的是将映射方式作为设备上下文句柄属性,而将该句柄当作参数的GDI函数,因此象GetSystemMetrics这样的非GDI函数,将继续以设备单位(象素值)返回尺寸值。

用GDI的SetPixel函数可以绘制一特定颜色的象素:

rgbActualColor =SetPixel (hdc,x,y,rgbColor);

这里hdc标识设备上下文,x ,y表示点坐标,rgbColor为一无符号的长整数,其结构为:

COLORREF rgbColor;

其中低位字节为红基色的相对亮度值,第二个字节包含绿基色的相对亮度值,第三个字节包含蓝基色的相对亮度值,高位字节必须为零。可以使用RGB函数来获取rgbColor。

rgbColor =RGB(byRed ,byGreen,byBlue);

这里的byRed、byGreen、byBlue取值范围为0~255,分别代表红色、绿色、蓝色的亮度。给出正确的参数之后,SetPixel返回的是调色板中最靠近所需彩色的颜色。还可以使用如下方法来取得一个特定象素的颜色:

rgbCotor= GetPixel(hdc,x,y);

画线函数主要有三种, LineTo、Polyline 和 Arc。还有五个设备上下文属性会影响这些函数画出的线的外观:笔的当前位置(仅对LineTo有影响)、笔、背景方式(对非实心笔有影响)、背景颜色(对 OPAQUE背景方式)以及绘制方式。

在这些设备上下文的属性中,笔的当前位置影响画线的起点,笔影响线的粗细等形状,背景方式影响非实心笔画出的线的模板图形,背景颜色影响线模板背景色,绘制方式影响实心线、虚线等线属性。

以下是典型的画线操作步骤:

MoveTo(hdc,xStart,yStart);

LineTo(hdc ,xEnd ,yEnd);

上面两句画出一条从(xStart,yStart)到(xEnd,yEnd)的直线。

可以使用语句:

dwPoint = GetCurrentPosition (hdc);

获得笔的当前位置。这里,dwPoint返回值是一个无符号长整数(或双倍长字),其中低位字含有X坐标,高位字含有Y坐标。

可以使用MAKEPOINT函数将dwPoint转换为POINT结构;

point = MAKEPOINT (dwPoint);

point的类型为POINT:

typedef struct togPOINT {kk1}

int x;

int y;

}POINT;

Polyline用于绘制折线,例:

Polyline(hdc,pt,5)

将数组pt中的5个点之间用线段相连。

Arc用于画椭圆的周边:

Arc (hdc,xLeft,yTop,xRight,yBottom,xStart,yStart,XEnd,yEnd );

画出的椭圆以左上角为(xLeft,yTop),右下角为(xRight,yBottom)的矩形为界,圆弧开始于椭圆和(xStart,yStart)与椭圆中心的连线的交点处,沿着椭圆周边的过时针方向绘制,并终止于椭圆和(xEnd,yEnd)与椭圆中小的连线的交点处。

当调用LineTo、Polyline和Arc时,Windows使用当前在设备上下文中选择的笔来画线,笔决定了线的颜色、密度和型式,而线型可以是实线、点线或短划(虚)线,缺省设备上下文中的笔叫做BLACK_PEN,不管映射方式如何选支笔以一个象素的宽度画黑色的实线, BLACK_PEN是Windows提供的三支“备用笔”之一,其他两支是WHITE_PEN和NULL_PEN,NULL_PEN是一支什么都不画的空笔,当然用户也可以自己建立定制的笔。

可以通过一个句柄来引用所需的笔:

HPEN hPen;

hPen =GetStockObject(WHITE_PEN);

SelectObjeCt (hdc ,hPen) ;

SelectObject (hdc , hBrush ) ;

将逻辑刷送入设备上下文中。如果使用结束,可以用:

DeletObject (hBrush ) ;

删除一把已建立的刷子,如果在程序中需要获取有关于刷子的信息,则可以调用:

3.像素格式结构

每个OpenGL显示设备都支持一种指定的像素格式。一般用一个名为PIXELFORMATDESCRIPTOR的结构来表示某个特殊的像素格式,这个结构包含26个属性信息。Win32定义PIXELFORMATDESCRIPTOR如下所示:

typedef struct tagPIXELFORMATDESCRIPTOR

{ kk1}

// pfd

WORD nSize;

WORD nVersion;

DWORD dwFlags;

BYTE iPixelType;

BYTE cColorBits;

BYTE cRedBits;

BYTE cRedShift;

BYTE cGreenBits;

BYTE cGreenShift;

BYTE cBlueBits;

BYTE cBlueShift;

BYTE cAlphaBits;

BYTE cAlphaShift;

BYTE cAccumBits;

BYTE cAccumRedBits;

BYTE cAccumGreenBits;

BYTE cAccumBlueBits;

BYTE cAccumAlphaBits;

BYTE cDepthBits;

BYTE cStencilBits;

BYTE cAuxBuffers;

BYTE iLayerType;

BYTE bReserved;

DWORD dwLayerMask;

DWORD dwVisibleMask;

DWORD dwDamageMask;

} PIXELFORMATDESCRIPTOR;

4.初始化PIXELFORMATDESCRIPTOR结构

PIXELFORMATDESCRIPTOR中每个变量值的具体含义和设置可以参考有关资料,下面举出一个PIXELFORMATDESCRIPTOR初始化例子来简要说明相关变量的意义。定义PIXELFORMATDESCRIPTOR结构的pfd如下:

PIXELFORMATDESCRIPTOR pfd = { kk1}

sizeof(PIXELFORMATDESCRIPTOR), . //size of this pfd 1

PFD_DRAW_TO_WINDOW| // support window

PFD_SUPPORT_OPENGL| // support OpenGL

PFD_DOUBLEBUFFER, // double buffered

PFD_TYPE_RGBA, // RGBA type

24, // 24-bit color depth

0,0,0,0,0,0, // color bits ignored

0, // no alpha buffer

0, // shift bit ignored

0, // no accumulation buff

0,0,0,0, // accum bits ignored

32, // 32-bit z-buffer

0, // no stencil buffer

0, // no auxiliary buffer

PFD_MAIN_PLANE, // main layer

0, // reserved

0,0,0 // layer masks ignored

};

在这个结构里,前两个变量的含义十分明显。第三个变量dwFlags的值是

PFD_DRAW_TO_WINDOW |PFD_SUPPORT_OPENGL ,

表明应用程序使用OpenGL函数来绘制窗口

第四个:

PFD_DOUBLEBUFFER,

表明当前采用RGBA颜色模式,第五个采用24位真彩色,既1.67千万种颜色,如果是256色系统则自动实现颜色抖动;因为没有使用alpha缓存和累计缓存,所以从变量cAlphaBits到cAccumAlphaBits都设置为0;深度缓存设置为32位,这个缓存能解决三维场景的消隐问题;变量cAuxBuffers设置为0,在Windows 95下不支持辅助缓存;Windows 95下针对OpenGL变量ilayerType只能设置为PFD_MAIN_PLANE,但在其它平台也许支持PFD_MAIN_PLANE或PFD_MAIN_UNDERLAYPLANE;接下来bReserved变量只能设为0,而最后三个变量Windows 95都不支持,故全设置为0

在编程猫手机版中怎样使用画笔画一个五边形

在编程猫手机版中使用画笔画一个五边形步骤如下:

1、运行编程猫APP,打开作品"五角星",进入创作界面,可以看到已添加了角色"编程猫跳跳"。

2、切换到积木编辑区,可以看到已有画五角星的积木组。

3、把"控制"积木盒中的"重复执行20次"拉到"落笔"下方,自动拼接起来。

4、把数字修改为"10"。画10个五角星。

5、把下面的积木组拉进"重复执行10次"框内。

6、把"画笔"积木盒中的"增加画笔颜色值10"拉到"旋转108度"下方,自动拼接起来。

7、把数字修改为"30",同时点运行,漂亮的五角图案就画出来啦。

如何用编程猫画三个正方形?

1.?用到命令模块

模型的搭建需要用到积木区三个模块的命令:(1)动作模块;(2)画笔模块;(3)控制模块,(4)外观模块,如下图。

2.程序搭建

第一步:设定角色大小,设定画笔粗细。命令如下:

其中“清空”、“将画笔的大小设定为”、“落笔”三个命令在积木区“画笔”的模块;“将角色的大小设定为”在积木区“外观”模块。

思考:前面四个积木的顺序是否有影响?

查找命令小技巧:

代码区积木的颜色和积木区的颜色是一样的,例如下图中“将角色的大小设定为”在积木区的“外观”中,因此二者的颜色是一样的。

第二步:移动小猫,画正方形的第一条边长。

在积木区“动作”模块,完成:(1)让小猫朝向右边:“面向90°方向”;(2)让小猫“移动100步”,同时,舞台区的小猫就会留下移动的痕迹,画下正方形的第一条边长;在积木区“控制”模块,完成:(3)等待1秒进入下一个命令。

第三步:转弯,完成剩余边长。

在积木区“动作”模块,完成:(1)让小猫转弯:“向左旋转90°度”;(2)让小猫“移动100步”,再画下一条直线;(3)等待1秒进入下一个命令。完整的程序如下。

第四步:点击小旗子,运行程序。

回复绘制正方形-基础版即可获得程序模型。

编程猫中如何将多个积木整体进行旋转

对积木进行编辑,拼接,然后再用画笔绘制。

运行编程猫APP,新建作品,进入创作界面。点添加角色。在角色库的角色类,点选编程猫跳跳,点右上角添加。点积木编辑图标切换到积木编辑区。把事件积木盒中的当开始被点击拉到编辑区。把外观积木盒中的隐藏拉到当开始被点击下方,自动拼接起来。让编程猫跳跳隐藏起来。把画笔积木盒中的设置画笔颜色拉到隐藏下方,自动拼接起来。把画笔积木盒中的设置画笔粗细拉到设置画笔颜色下方,自动拼接起。把数字修改为10。把画笔积木盒中的落笔拉到设置画笔粗细下方,自动拼接起来。准备画正方形了。把控制积木盒中的重复执行20次拉到落笔下方,自动拼接起来。把数字修改为4。因为正方形有4条边。把动作积木盒中的移动10步拉到重复执行4次的框中,自动拼接起来。把数字修改为200。设置正方形的边长。把动作积木盒中的旋转30度拉到移动200步下方,自动拼接起来。把数字修改为90。设置正方形的四角度数。把控制积木盒中的重复执行20次拉到落笔下方,自动拼接起来。把数字修改为12。画12个正方形。把动作积木盒中的旋转30度拉到重复执行12次框中,自动拼接起来。先旋转30度,然后画出一个正方形,重复12次。点运行。可以看到漂亮的旋转正方形叠加图案画出来啦。通过修改参数,比如改为重复执行24次和旋转15度。可以画出更复杂漂亮的图案。

怎么化编程猫

1.打开编程猫软件,首先我们需要在素材库中搜索你画我猜,搜索到结果之后点击右下角的采集,将背景加入到我们的背景库中,这时候我们就可以使用这个背景了。

2.然后点击屏幕右下角的铅笔图标,开始绘制一个新角色,使用图中所示的基本图形,正方形和三角形,画出画笔的轮廓,然后改变填充颜色,最后使用直线画上几条线,画笔就制作完成了。点击保存。

3.然后开始设置画笔的大小和方向,自定义它的大小,然后最好将画笔调节成斜斜的方向。可以直接在界面上拖动画笔周围的边框来调节大小和方向,也可以使用屏幕下方的工具栏,直接输入大小和方向。

4.给画笔设置中心位置,点击画笔角色左上角的设置按钮,然后在弹出的界面上,选择编辑按钮,这里可以更改画笔的基本设置。将画笔中心点设置在笔尖上,这样画出的图像就在笔尖处显示。

5.设置画笔的程序,设置画笔颜色,粗细,以及画笔重复执行当鼠标按下时跟着鼠标位置移动,落笔,抬笔的设置。

6.点击开始运行程序,使用我们的鼠标控制画笔画画,如果这时候画出一点别人就猜中了,我们可以按下空格键,清空画板,接着画下一个继续游戏。

(责任编辑:IT教学网)

更多

推荐浏览下载文章