首页 > 编程语言 >小熊猫C++编写海龟作图程序

小熊猫C++编写海龟作图程序

时间:2023-01-30 22:31:22浏览次数:64  
标签:angle 函数 填充 作图 C++ 海龟 窗口 小熊猫

未完待续。。。

初遇问题

使用内置的模板创建海龟作图小程序:

小熊猫C++编写海龟作图程序_背景色

但是,编译运行时出现错误:

小熊猫C++编写海龟作图程序_背景色_02

rturtle海龟绘图命令小结

在小海龟行动之前,我们需要熟悉一下绘图环境。这里用列表小结一下​​作者介绍过的命令​​。就像手册一样,你可以在用到时再查看。

函数名通常是由其功能作用相关的英文单词构成的组合或简写,还是比较好理解的。使用函数时,模仿一定要细致到位,比如要区分字母大小写参数数量和顺序、中英文符号格式,还要注意缩进、多写注释、不漏写字符等。

画布窗口相关命令

  • 创建作图窗口 initWorld( 800, 600 ) 尺寸为像素数
  • 设置背景色 setBackgroundColor( LIGHTBLUE )
  • 设置背景图片 setBackgroundImageFile( "d:\\banner-001.png" ) F4 隐藏/显示背景图片
  • 重新设置网格 createGrids() 如:createGrids(50,1,16,DARKGREEN,DARKRED); F2 隐藏/显示坐标网格
  • 截图 F5键来抓取当前窗口中的图形,并保存图片文件到.exe所在文件夹
  • 清屏 clearScreee( ) 或 cs( )
  • 等待关闭窗口 waitClose( );
  • 清理作图窗口 closeWorld( );

画笔和填充

想象海龟的身子下方有一只笔,笔的尺寸和颜色决定了海龟痕迹的粗细和颜色。

  • 画笔线条粗细 setPenSize( 3 )
  • 画笔颜色 setPenColor( DARKRED )
  • 落笔 penDown( ) 或 pd( ) 默认落下
  • 抬笔 penUp( ) 或 pu( )
  • 是否落下 isPenDown( )
  • 填充图形 beginFill( ) 开始……endFill( LIGHTGREEN )结束

*利用抬笔和落笔可绘制虚线。填充时,如果路径中存在交叉,则可能会有部分区域不能被填充。

*泛洪填充(fillToBorder、fill )还没有看到如何使用。

海龟移动基本命令

  • 设置速度 setSpeed( 500 ) 默认速度为100像素/秒
  • 前进距离 forward( ) 或 fd( 100 ) 尺寸为像素数
  • 后退距离 backward( ) 或 bk( 100 )
  • 左转角度 leftTurn( ) 或 lt( 90 ) 单位为度,360度为一圈
  • 右转角度 rightTurn( ) 或 rt( 90 )
  • 返回初始位置 home( )

坐标系和高级移动函数

后面的函数基于坐标系和方向角。

坐标系

小熊猫C++编写海龟作图程序_背景图片_03

【注意】原点在窗口正中间。

方向角

小熊猫C++编写海龟作图程序_基本命令_04

*后面的函数就是在坐标系和方向角基础上描述的。

有过程移动

  • 爬到点(x,y)处 gotoXY(x,y)
  • 转到方向角angle turnTo(angle)
  • 朝向点(x,y)转动 faceXY(x,y)

无过程瞬移

  • 瞬移到点(x,y)处 setXY(x,y)
  • 横移到横坐标为x setX(x)
  • 纵移到纵坐标为y setX(y)
  • 转到方向角angle setHeading(angle) 或 setAngle(angle) 貌似与 turnTo(angle) 相同啊,都是原地转
  • 瞬移回原点(0,0) home() 初始方向角为90度

获取海龟位置

  • 获取x、y坐标 getXY( )
  • 获取x坐标 getX( )
  • 获取y坐标 getY( )
  • 获取方向角 getHeading( ) 或 getAngle

还有一些函数,用到时再介绍吧。


引用


标签:angle,函数,填充,作图,C++,海龟,窗口,小熊猫
From: https://blog.51cto.com/zhuxianzhong/6027921

相关文章

  • C++ 编译相关
    目录一、cmake前言安装步骤二、cmake与make两者区别为什么不直接使用项目编译链接工具(gcc/g++...)为什么不直接使用make或者Ninjacmake指定编译器(cmake-G)三、CMakeLists......
  • C++ STL stack
    #include<stack>头文件usingnamespacestd;作用这个很清楚了,FILO运用在:括号匹配、波兰式计算问题上(未完待续)创建一个参数,默认使用deque容器stack<typenameT,t......
  • C/C++学生成绩信息管理[2023-01-30]
    C/C++学生成绩信息管理[2023-01-30]2.学生成绩信息管理【问题描述】利用哈希表完成学生成绩信息的管理。每个学生记录包含学生学号(Number)、真实姓名(Name)、网名(Scre......
  • C++ 模板之类模板
    使用类模板,可以事先不确定成员变量的类型,假如我们要写一个先进后出的栈,这个栈既可以放入int,也可以放入long,还可以放入string,那么就需要使用模板技术,否则,类的成员变量将难以......
  • C++ 运算符重载
    技术,是实现目标的手段,重载运算符,可以让程序看起来更优美,更优美的程序更具有可读性,如果不重载,使用函数一样可以达到目的,但那样子程序看起来很蹩脚,直接上代码    #inclu......
  • 使用GDB调试python调用的C++共享库
    目录1.首先编写python调用C++的demo2.gdb调试python程序3.全速运行程序4.查看堆栈信息当我们用Python调用C++的库,并且C++库中存在段错误崩溃时,首先想到的还是用gdb......
  • Python和C++联合调试
     python和c++分别在Linux和Windows下联合调试首先创建一个python测试项目和一个c++拓展项目一、在Windows下进行调试1.编译器安装2.C拓展模块安装3.调试......
  • python调用cpp 调试_python和C++联合调试
    python可以利用SO的方式去调用C++中的函数,但是需要一种调试方案来进行python和C++的联合调试,效果是直接在c++代码中打断点,然后python在进行c++so调用的时候,直接进入到断......
  • 一起调试 Python 和 C++
    大多数常规Python调试器支持仅调试Python代码。但是,实际上,Python结合C或C++一起使用时需要高性能或直接调用平台API的能力。(有关演练,请参阅创建适用于Pyth......
  • Linux的多线程下使用c/c++调用Python方法示例
    首先,所有python的函数都是用extern"C"定义的,因此对于C和C++,其使用是一样的。c语言调用python必须要有的API(不管有没有多线程):  PyRun_SimpleString//执行一段......