火箭一冲,三角形画好了,再一冲角平分线画好了

用C++如何画三角形和角平分线呢?这里提供了一个解决方案,以下是效果:

2026-01-15_202900

再看这C++代码:

/*
   本程序演示了如何画一根角平分线
*/
#include "sprites.h"  //包含C++精灵库 
Sprite rocket;       //建立角色叫rocket 

int main(){        //主功能块 
   g_screen->xygrid(50);  //显示坐标格子
   Point A{-150,-150};
   Point B{200,0};
   Point C{0,250};
   //连接三个顶点画三角形
   rocket.pu().color(0).go(A).pd().go(B).go(C).go(A);
   //算出角ABC的大小,然后在下面写几个字
   float jABC  = get_angle(A,B,C);   //求出角ABC的大小
   std::string s = "角ABC大小是:" + std::to_string(jABC);   
   rocket.pu().go(0,-200);
   rocket.write(s,"center",{"","30","normal"});
   //画角平分线,先到达B点,然后朝向C点,左转角ABC的一半,出发!就把角平分线画好了。
   rocket.go(B).heading(C).left(jABC/2).color(33).pd().fd(300);
   //去写上面几个字
   rocket.pu().go(0,300);
   std::string s2 = "C++精灵库画角平分线";
   rocket.write(s2,"center",{"","36","normal"} ); 
   rocket.hide().done();  
   return 0;
}

这段程序其实是用一个叫“C++精灵库”的工具写的,目的是画一个三角形,再画出角ABC的角平分线。说白了,就是给你画图,还能写字展示结果。

程序首先用g_screen->xygrid(50)命令,让窗口屏幕上显示一个带网格的坐标系(每格是50单位),这样你看得清楚点在哪里。

然后,程序定义了三个坐标点,Point 这是用来定义坐标点的类,就像int用来定义整数一样。
代码中设置了A、B、C三个点的坐标,分别是

  • A点:在左下角大概(-150,-150)
  • B点:右边(200,0)
  • C点:上方(0,250)

接着用一行代码,嗖地一声把三角形来好了,这行代码是:

//连接三个顶点画三角形
   rocket.pu().color(0).go(A).pd().go(B).go(C).go(A);

“rocket”这个角色(其实是个能动的笔)先“抬笔”,换成红色,跑到A点落笔,连着画到B点,接着C点,最后回到A点,这样就画出了一个三角形。代码中的color(0)就是设置画笔为红色的意思。为什么0表示红色呢?因为采用的是HSV色彩模式,0表示色相,所以就表示了红色。

接着程序通过get_angle这个魔法命令算出了角ABC的大小。

关键来了!先让“rocket”跑到B点,再让它“朝向”C点,也就是面朝角的一边。然后让它左转角ABC的一半(角平分线就是把角分成两半的线),再用橙色笔划出去300个单位,这样角平分线就画出来了。

最后“rocket”跑到屏幕上方(0,300)写上“C++精灵库画角平分线”几个字,漂亮地结尾。程序把“rocket”藏起来,结束画面。

这程序就是用“rocket”在一个有坐标网格的画板上,画出三角形,计算并显示角度,再用一条线把角分成两半,同时写出提示字,演示角平分线怎么画。逻辑清楚,步骤一步步来,容易理解。看来C++精灵库不鬼为一个较好的绘图工具箱啊。我录了视频在这里:

posted on 2026-01-15 21:00  李兴球  阅读(9)  评论(0)    收藏  举报