如何用C语言做几何证明题具体就是
我只能想出来用数值方法来证明,不过不太严格.
1)
随机生成三个点A、B、C;
用作图函数画出ABC,用三角形边框的颜色在三角形内部填色,然后数出颜色为上述颜色的象素点数;
利用题干给出的三等分点的条件算出A1、B1、C1三点;
在空白屏幕上连出AA1、BB1、CC1;
利用A、B、C三点的坐标画出一个正好包括三角形的矩形框,使框内部正好被上面三个线段分成两个部分,其中之一就是那个小三角形;
在框里小三角形之外的某点用三条线段的颜色来填色(比如取角落上的某点),于是小三角形之外的区域的象素都是同一颜色,数一下就能知道小三角形内的象素个数。
把两个三角形占据的象素个数比较一下就知道答案了...全部
我只能想出来用数值方法来证明,不过不太严格.
1)
随机生成三个点A、B、C;
用作图函数画出ABC,用三角形边框的颜色在三角形内部填色,然后数出颜色为上述颜色的象素点数;
利用题干给出的三等分点的条件算出A1、B1、C1三点;
在空白屏幕上连出AA1、BB1、CC1;
利用A、B、C三点的坐标画出一个正好包括三角形的矩形框,使框内部正好被上面三个线段分成两个部分,其中之一就是那个小三角形;
在框里小三角形之外的某点用三条线段的颜色来填色(比如取角落上的某点),于是小三角形之外的区域的象素都是同一颜色,数一下就能知道小三角形内的象素个数。
把两个三角形占据的象素个数比较一下就知道答案了。
2)
和1)类似,不过先随机确定三角形RBC(或RAD之类?),然后在三角形两边上分别随机找出两点,凑成一个“任意四边形”。
下面的步骤就和1)一样了,不过由于较小的三角形RMN各点可以很方便地知道,所以只要直接在三角形内部填色、数象素就可以了。
--------------------------
当然直接计算也是可以的,以1)来说。
基本上,只要知道三角形各顶点的坐标,那么比较出其中各个X、Y的最大最小值,就能很简单地在屏幕上找到恰好包围三角形的矩形,然后就能很有一般性地求出三角形面积。
然后找一套求直线交点的算法出来一步步算出A2、B2、C2三点,再算出这个小三角形的面积,然后就有结果了。
不过可惜这也是数值计算方法,只不过比上面的巧妙一点。收起