主要内容 #
1. 坐标 #
1.1 生活中的坐标 #
在生活中,我们是怎么确定自己的位置呢?
其实我们无形中,使用了一个概念,叫做“坐标”。
为了方便说明,我们用象棋的棋盘,来做一个简单说明。
假设,每个格子的长宽都是1。横轴用X表示,纵轴用Y表示,
则每个棋子的位置,可以用坐标(x,y)表示。
请试着说出,“红炮”和“黑卒”的坐标。
/* */
参考答案:
红炮 (3, 3) 黑卒 (-1, 2)
1.2 屏幕中的坐标 #
习惯上,我们依然将横轴用X表示,纵轴用Y表示,
则每个字符的显示位置,也可以用坐标(x,y)表示。
有了这样的基本约定,我们就可以尝试着,在屏幕上移动字符,做一个动画。
2. 在指定位置显示星号 #
请编程,在窗口坐标(10,5)的位置,显示一个星号(*)。
/* 请编程完成后,查看示例程序。 */
示例程序:
#include < iostream > int main() { int x(10), y(5); for(int j=0; j <= y; j++) // 移动到第 5 行 std::cout << std::endl; for(int i=0; i <= y; i++) // 移动到第 10 列 std::cout << " " ; std::cout << "*"; return 0; }
3. 移动字符 #
结合上节课学到的知识,尝试实现:星号逐渐向上移动的效果。
提示:可以使用 system(“cls”) 和 Sleep();
/* 请编程完成后,查看示例程序。 */
示例程序:
#include < iostream > #include < Windows.h > int main() { // 定义点的初始位置 int x(10), y(5); for(int k=0; k <= 5; k++) { // 1. 清除屏幕 system("cls"); // 2. 变换下一次点的位置 x = 10; y = y-1; // 3. 绘制星号 for(int j=0; j <= y; j++) std::cout << std::endl; for(int i=0; i <= x; i++) std::cout << " " ; std::cout << "*"; // 4. 延时 Sleep(200); } return 0; }