0
点赞
收藏
分享

微信扫一扫

c++ 输入三条边 绘制三角形


安装图形库

参考

c++ 输入三条边 绘制三角形_#include


c++ 输入三条边 绘制三角形_背景色_02

#include "graphics.h" // 就是需要引用这个图形库 
#include <conio.h>
#include <stdio.h>
#include <math.h>

// 判断是否可以构成三角形
int isTriangle(int a, int b, int c) {
    return (a + b > c) && (a + c > b) && (b + c > a);
}

// 绘制三角形图形
void drawTriangle(int a, int b, int c) {
	 
    
    initgraph(1000, 800); // 初始化,显示一个窗口
	// 设置背景色为蓝色
	setbkcolor(BLUE);
	// 用背景色清空屏幕
	cleardevice();
	 
	settextstyle(16, 0, _T("Consolas"));
	if (a == b && b == c) {
        outtextxy(200,0,_T("这是一个等边三角形"));
        int hight = 0.75 * a;
        int points[] = {a / 2, 0, 0,hight, a,hight};
        printf("%d \n",hight);
        printf("%d %d %d %d %d %d",points[0],points[1],points[2],points[3],points[4],points[5]);
        
        	if(a < 100){
    		
    		for(int i = 0; i < 6; i++){
    			points[i] *= 10;
			}
		}
    	
		drawpoly(3, points);
    } else if (a == b || b == c || a == c) {
    	outtextxy(200,0,_T("这是一个等腰三角形"));
    	int yaoL = a;
    	int bottonL = c;
    	if(b == c){
    	 	yaoL = b;
    	 	bottonL = a;
		}
		if(c == a){
		 	yaoL = a;
    	 	bottonL = b;
		}
		 
		int hight = sqrt(a*a - (bottonL * 0.5) * (bottonL * 0.5)); 
		int points[] = {bottonL / 2, 0, 0,hight, bottonL,hight};
        printf("%d \n",hight);
        printf("%d %d %d %d %d %d",points[0],points[1],points[2],points[3],points[4],points[5]);
        
        	if(a < 100){
    		
    		for(int i = 0; i < 6; i++){
    			points[i] *= 10;
			}
		}
    	
        
        drawpoly(3, points);
    } else if (a * a + b * b == c * c || a * a + c * c == b * b || b * b + c * c == a * a) {
        outtextxy(200,0,_T("这是一个直角三角形"));
		int l1= a,l2 = b,l3 = c;
		
		if (a * a + c * c == b * b){
			l1= a,l2 = c,l3 = b;
		}
		if(b * b + c * c == a * a){
			l1= b,l2 = c,l3 = a;
		}
		
		int points[] = {l1,l1,l1,l3,l3,l3};
		
			if(a < 100){
    		
    		for(int i = 0; i < 6; i++){
    			points[i] *= 10;
			}
		}
    	
    	
        drawpoly(3, points);
		 
    } else {
    	outtextxy(200,0,_T("这是一个普通三角形"));
    	
    	// a > b > c
		
		int temp = a; 
		if(a < b){
			temp = b;
			b = a;
			a = temp;
		} 
		if(a < c){
			temp = c;
			c = a;
			a = temp;
		}
    	
    	//海伦公式
    	double p = 0.5 * (a + b + c);
    	double s = sqrt(p * (p - a) * (p - b) * (p - c));
    	// s = 0.5 * a * h
    	double h = s * 2.0 / a;
    	printf("%lf \n",p);
    	printf("%lf \n",s);
    	printf("%lf \n",h);
    	
    	int ih = int(h);
    	
    	int otherH = sqrt((a * a) - (ih * ih));
    	
    	
    	int points[] = {0,0,0,a,ih,otherH};
    	
    	if(a < 100){
    		
    		for(int i = 0; i < 6; i++){
    			points[i] *= 10;
			}
		}
    	
		drawpoly(3, points);
    }
 
	//circle(200, 200, 100); // 画圆,圆心(200, 200),半径 100 
   
	
//	int points2[] = {50, 200,  200, 200,  200, 50};
//	drawpoly(3, points2);

    getch(); // 暂停一下等待用户按键 
 
    closegraph(); // 关闭图形界面 
}

int main() {
    int a, b, c;
	
    printf("请输入三条边的长度(用空格分隔):");
    scanf("%d %d %d", &a, &b, &c);

    if (isTriangle(a, b, c)) {
        printf("可以形成一个三角形。\n");

        drawTriangle(a, b, c);
    } else {
        printf("无法形成一个三角形。\n");
    }

    return 0;
}


举报

相关推荐

0 条评论