用C语言如何用递归方法画出下图图形 只需提供思路不用具体代码 急!谢谢

如题所述

需要有一个画直线的库函数供使用。以下讲思路。
定义点的类型为具有二维坐标,比如 struct point { double x; double y;} 之类。
定义多边形的类型为元素是点的线性表,比如链表 struct polygon { struct point *p; struct polygon* next; },
需要能按顺序访问各个点,并需要提供insert函数以做插入点操作。
从等边三角形开始,多边形包含起始的三个点,三个点构成等边三角形。
下面的思路是伪代码

p = 起始点head;
do {
1.每个点p与下一个点p->next构成多边形的一条边,求边长;
2.求出两个三等分点q1和q2(求两点构成的线段的距离并进一步求三等分点的方法写成函数,公式不用说了吧);
3.按顺序将q1和q2插入p和p->next之间;
4.以q1和q2为顶点求向外生长出的三角形的第三个顶点r(求r的坐标比较复杂一些,可以用公式,但我认为按q1q2与x轴的夹角分6种情况可以简化计算);
5.将r插入q1和q2之间;
6.p = p->next;
} while (p != 起始点head);
// 每完整循环一次增长一轮,考虑一下要循环几轮满足需要,从图看第二个图是循环3轮。

下面p依次遍历多边形每个点画线 drawline(p, p->next)
最后一个点与起始点head之间drawline(p, head)闭合图形。
完毕。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-05-03
这是c语言,怎么像vb
相似回答