第十二课 定位画图---坐标
来源:互联网 发布:钉钉管理员能看到数据 编辑:程序博客网 时间:2024/05/22 04:36
第十二课 定位画图---坐标
【平面坐标】
为了能描述一个地点的位置,一般有两种说法:
l 以自己当前的位置和方向为根据,描述相对的方向和距离。例如:向前走100米,右转再走50米。GoC的笔的fd、rt命令正是如此。
l 另一种方法是根据整个城市的地图,描述确定的地点。例如:在城市的东南方向。
第2种方法在数学上叫:平面直角坐标系。如下图表示:
坐标系由原点O、水平的X轴和垂直的Y轴构成。
坐标系中每一点的位置都用它在X轴和Y轴的位置表示,称为坐标。例如:(2,3)。
上图中A点的坐标为(3,5)、B点的坐标为(-5,1)、C点的坐标为(2,-3)。
【思考】
l 坐标(0, 0)位置在哪里?
l 坐标(-3, -5)位置在哪里?
l 坐标(6, 1)位置在哪里?
GoC中的位置也是用直角坐标表示的,你可以在程序开始加显示坐标的命令:
showXY( );
showXY(1);
showXY()更多的模式参数请查看帮助文档。
【坐标相关命令】
GoC里有几个与坐标系相关的命令:
坐标类命令
pen.move(x , y);
把“笔”移动到坐标位置(x,y)处,只是移动位置不画线。
例:pen.move(0,0);“笔”回到原点。
pen.line(x , y);
从笔的当前位置画到坐标位置(x,y)处,画线不受笔的方向影响。
例:pen.line(100,100);
使用move和line命令,可以比较方便地到指定的位置,在画和数学相关的图形时特别有效。
例题12.1:在X坐标轴上画13个点,位置从(-300,0)到(300,0)。如下图:
分析
x坐标从-300开始,每次增加50,到300。利用move(x,0)到指定位置,再画个红色的圆即可。
样例程序12.1
图形
int main()
{
showXY(1);
for(int x=-300; x<=300; x+=50)
p.move(x,0).oo(3, _red);
return0;
}
例题12.2:画下面的图形。
分析:
连一些线,线的左端点在Y轴上,右端点固定为(300,0):
解题方法:用for语句的循环变量列举所有左端点的Y坐标,用move命令到左端点,再line到(300,0)画线即可。
样例程序12.2
图形
int main()
{
// showXY(1);
for(int i=0; i<300; i+=25)
{
pen.move(0,i);
pen.line(300,0);
}
return0;
}
例题12.3:风帆。
分析:
连一些线,线的左端点固定为(-300,0),线的中间点在Y轴上,右端点固定为(300,0):
解题方法:用for语句的循环变量列举所有左端点的Y坐标,用move命令到左端点,再line到中间Y轴上点和右端点(300,0)画线即可。
样例程序12.2
图形
int main()
{
// showXY(1);
pen.size(5).fd(310); //画中间的柱子
pen.size(1).c(0);
for(int y=300; y>=0; y-=30)
{
p.move(-300,0).line(0,y).line(300,0);
}
return0;
}
例题12.3(初中):画Y=X*X/30的函数图形。
分析:手工画函数的基本方法是“描点连线”。现在我们模拟这个方法。公式中如果不除30,x=100时y=10000,函数的图形高度会超出屏幕。
解题方法:用for语句的循环变量列举X从-100到100,计算出相应的Y值,就是一个点的坐标,用line画线即可。要先到第一点。
样例程序12.3
图形
//程序名:样例程序12.2
//作者: gogo
//2015.12.22
int main()
{
// showXY();
pen.move(-100,100*100/30);
for(int x=-100; x<100; x++)
{
int y=x*x/30;
pen.line(x,y);
// pen.oo(2,3);//描点
}
return0;
}
【练习】
一、填空题。根据题目的任务,填空完善程序。
题目
程序
练习12.1画下面图形。
int main()
{
// showXY(2);
for(int x=-100; x<=200; x+=20)
{
p.move(x,100);
p.line(-x, );
}
return0
练习12.2(初中)画Y=kX的函数图形,k是键盘输入。
下面是输入-2的图形。
int main()
{
showXY();
double k;
cin>>k;
for(int x=-200; x<=200; x++)
{
p.move(x, );
p.oo(2,3);
}
return0;
}
注:变量k定义为double型,可以输入小数,比如:0.2。
练习12.3(高中)画Y=sin(x*w)*hight的函数图形。w是周期密度,hight是高。w=3,hight=200的图形如下:
int main()
{
// showXY();
int w=3;
int hight= ;
for(int x=-200; x<=200; x++)
{
p.move(x, sin(x*3.1416/180*w)*hight);
p.oo(3,1);
wait(0.01);
// p.oo(5,_white);
}
return0;
}
注:x是度数,但C++里sin函数参数单位是弧度,要转换一下:x*3.14/180。
加wait是增加动态效果。
二、编程题。
练习12.4:编程画出下面图形,正方形边长为200。
参考程序:
int main()
{
showXY(2);
double len=200;
p.c(1).size(2);
for(int i=0; i<4; i++)//画正方形边框
p.fd(len).rt(90);
p.size(1);
for(double i=0; i<=len;i+= len/10)
{
p.move(0, i ).line(len-i,0);
}
return0;
}
练习12.5:编程画出下面图形。
练习12.6:编程画一个等腰梯形,上底边长为60,下底编程为120,高为50。如下面图形。
【学习目标】
(1) 掌握平面坐标(小学生可能要专门学习一下,比如用练习软件)。
(2) 掌握move和line命令。
(3) 学会用坐标定位画图。
- 第十二课 定位画图---坐标
- Matlab 画图(plot),坐标
- R 控制坐标画图参数
- matlab 画图的坐标设置
- Flex定位坐标文章
- IE坐标定位
- 六角格坐标定位
- 定位之坐标转化
- 定位坐标偏差
- HTML元素坐标定位
- 百度地图坐标定位
- HTML元素坐标定位
- javascript画图并记录坐标点
- Matlab 根据坐标在图中画图
- QT 画图实践(1)--坐标变换
- matlab 画图坐标datacursormode on的使用
- 基站定位获取位置坐标
- GPS定位转百度坐标
- android:process=":remote"属性解说
- 获取MAC地址
- ssh项目在beams.xml报错No grammar constraints (DTD or XML Schema) referenced in the document.
- 博客基本形式 时间和文字
- Matlab从三维矩阵中取出一列并且reshape
- 第十二课 定位画图---坐标
- js对象或类的方法设计模式解读
- VirtualBox 删掉虚拟镜像重新安装失败
- mac 上显示 . 开头的隐藏文件
- 看懂执行计划 顺序
- poj 3268 Silver Cow Party
- 如何用 React Native 创建一个iOS APP?
- Java并发编程:并发基础概念
- 关于hive环境搭建