C++编程实现三角形A
时间: 2023-07-11 20:25:45 浏览: 53
好的,以下是一个C++程序示例,可以计算三角形A的面积和周长:
```c++
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double a, b, c, s, area, perimeter;
cout << "请输入三角形的三边长:" << endl;
cin >> a >> b >> c;
perimeter = a + b + c;
s = perimeter / 2;
area = sqrt(s * (s - a) * (s - b) * (s - c));
cout << "三角形的周长为:" << perimeter << endl;
cout << "三角形的面积为:" << area << endl;
return 0;
}
```
在上述程序中,我们使用了数学公式计算三角形的周长和面积。输入三角形的三边长后,将其赋值给变量a、b、c。接着,计算周长perimeter和半周长s,最后根据海伦公式计算面积area。最后输出结果即可。
希望能对您有所帮助。
相关问题
C++编程实现字母三角形
好的,以下是一个C++程序示例,可以打印出字母三角形:
```c++
#include <iostream>
using namespace std;
int main()
{
int n;
char ch = 'A';
cout << "请输入字母三角形的行数:" << endl;
cin >> n;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n - i; j++) {
cout << " ";
}
for (int k = 1; k <= i; k++) {
cout << ch << " ";
ch++;
}
cout << endl;
}
return 0;
}
```
在上述程序中,我们使用了两个嵌套的for循环来打印出字母三角形。外层循环控制行数,内层循环控制每行的字符数。首先在每行开头通过for循环输出若干个空格,然后再通过for循环输出若干个字母,并将字母依次增加。最后在每行结尾处换行即可。
希望能对您有所帮助。
MFC编程实现三角形的旋转
要实现三角形的旋转,可以使用MFC中的GDI+库。具体步骤如下:
1. 定义三角形的三个顶点坐标。
2. 在MFC窗口的OnPaint函数中,使用GDI+库绘制三角形。
3. 在MFC窗口的OnTimer函数中,每次定时器触发时,计算三角形的旋转角度,然后使用GDI+库绘制旋转后的三角形。
以下是代码示例:
```c++
// 定义三角形的三个顶点坐标
PointF p1(100, 100);
PointF p2(200, 100);
PointF p3(150, 200);
// 定义旋转角度和旋转中心点
float angle = 0;
PointF center(150, 150);
// 在OnPaint函数中绘制原始的三角形
void CMyWnd::OnPaint()
{
CPaintDC dc(this);
Graphics graphics(dc.GetSafeHdc());
Pen pen(Color(255, 0, 0, 0), 2);
graphics.DrawLine(&pen, p1, p2);
graphics.DrawLine(&pen, p2, p3);
graphics.DrawLine(&pen, p3, p1);
}
// 在OnTimer函数中实现三角形的旋转
void CMyWnd::OnTimer(UINT_PTR nIDEvent)
{
angle += 0.1; // 每次旋转的角度增量
if (angle >= 360) angle = 0; // 角度超过360度时,重新从0度开始旋转
PointF p1_new = RotatePoint(p1, center, angle);
PointF p2_new = RotatePoint(p2, center, angle);
PointF p3_new = RotatePoint(p3, center, angle);
// 绘制旋转后的三角形
CPaintDC dc(this);
Graphics graphics(dc.GetSafeHdc());
Pen pen(Color(255, 0, 0, 0), 2);
graphics.DrawLine(&pen, p1_new, p2_new);
graphics.DrawLine(&pen, p2_new, p3_new);
graphics.DrawLine(&pen, p3_new, p1_new);
}
// 计算点p绕点center旋转angle角度后的坐标
PointF RotatePoint(PointF p, PointF center, float angle)
{
float sinA = sin(angle * PI / 180.0);
float cosA = cos(angle * PI / 180.0);
float x = p.X - center.X;
float y = p.Y - center.Y;
float x_new = x * cosA - y * sinA + center.X;
float y_new = x * sinA + y * cosA + center.Y;
return PointF(x_new, y_new);
}
```
在窗口类中定义一个定时器,例如:
```c++
SetTimer(1, 20, NULL); // 每20毫秒触发一次定时器
```
这样就可以实现三角形的旋转了。