Написать программу, которая вычисляет площадь всей фигуры и вписанных в нее окружностей - C#
Формулировка задачи:
написать программу, которая вычисляет площадь всей фигуры и вписанных в нее окружностей. проверить попадает ли точка в данную фигуру. и закрасить все фигуры!!
Решение задачи: «Написать программу, которая вычисляет площадь всей фигуры и вписанных в нее окружностей»
textual
Листинг программы
/// <summary>
/// Code by: tezaurismosis. 25/04/2012
/// </summary>
using System;
using System.Drawing;
using System.Windows.Forms;
namespace DrawFigure
{
public partial class Form1 : Form
{
public Form1() {
InitializeComponent();
}
private void DrawFigure(Graphics gfx, float scaleFactor, float marginSize) {
// увеличение
float scale = scaleFactor;
// отступ от края - не зависит от увеличения
// им определяются размеры края оси
float margin = marginSize;
// кисть
Pen defPen = new Pen(Color.Black, 1.0f);
// рисуем дугу
gfx.DrawArc(defPen,
margin, margin,
10.0f * scale, 10.0f * scale,
-180.0f, 180.0f);
// рисуем оси координат
gfx.DrawLine(defPen,
margin + 5.0f * scale, 0.0f,
margin + 5.0f * scale, 15.0f * scale + margin); // y axis
gfx.DrawLine(defPen,
0.0f, 5.0f * scale + margin,
2 * margin + 10.0f * scale, 5.0f * scale + margin); // x axis
// рисуем нижнюю часть
gfx.DrawLine(defPen,
margin, 5.0f * scale + margin,
5.0f * scale + margin, 15.0f * scale);
gfx.DrawLine(defPen,
5.0f * scale + margin, 15.0f * scale,
margin + 10.0f * scale, 5.0f * scale + margin);
// рисуем круги
gfx.DrawEllipse(defPen,
margin + 2.5f * scale, margin + 2.5f * scale,
scale, scale); // левый
gfx.DrawEllipse(defPen,
margin + 6.5f * scale, margin + 2.5f * scale,
scale, scale); // правый
}
private void Form1_Paint(object sender, PaintEventArgs e) {
Graphics gfx = e.Graphics;
DrawFigure(gfx, 15.0f, 10.0f);
}
}
}