//создаем объект для рисования
System.Drawing.Graphics formGraphics = this.CreateGraphics();
Pen p = new Pen(Color.Black, 1);
//рисуем оси координат
formGraphics.DrawLine(p, 10, formGraphics.VisibleClipBounds.Height - 10, 10, 10);
formGraphics.DrawLine(p, 10, formGraphics.VisibleClipBounds.Height - 10,
formGraphics.VisibleClipBounds.Width - 10, formGraphics.VisibleClipBounds.Height - 10);
//рисуем круг c диаметром 100
p.Color = Color.Red;
formGraphics.DrawEllipse(p, 10, 10, 100, 100);
// рисуем линию под 45 градусов
// перевод из радиан в градусы
double fi = (45 * Math.PI) / 180;
// y = k * x + b
// b = 0, k = tg(fi)
float y = (float)Math.Tan(fi);
formGraphics.DrawLine(p, 10, formGraphics.VisibleClipBounds.Height - 10,
formGraphics.VisibleClipBounds.Width, formGraphics.VisibleClipBounds.Height - y * formGraphics.VisibleClipBounds.Width);
Другие языки программирования и технологии
Как в C# создать круг с осями координат , и потом с помощью формулы линией изобразить угол?
using System;
using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
DoubleBuffered = true;
}
static Rectangle ApplyPadding(Rectangle rectangle, Padding padding)
{
var location = new Point(rectangle.Left + padding.Left, rectangle.Top + padding.Top);
var size = new Size(rectangle.Width - padding.Horizontal, rectangle.Height - padding.Vertical);
return new Rectangle(location, size);
}
static Rectangle MakeSquare(Rectangle rectangle)
{
var length = Math.Min(rectangle.Width, rectangle.Height);
var size = new Size(length, length);
return new Rectangle(rectangle.Location, size);
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
var padding = new Padding(30);
var rectangle = ApplyPadding(e.ClipRectangle, padding);
rectangle = MakeSquare(rectangle);
var fore_color = Color.Blue;
var back_color = Color.FromArgb(50, fore_color);
var line_color = Color.Black;
var graphics = e.Graphics;
graphics.Clear(Color.White);
using (var brush = new SolidBrush(back_color))
graphics.FillEllipse(brush, rectangle);
// Угол в градусах, но отсчитывается по часовой стрелке
using (var brush = new SolidBrush(fore_color))
graphics.FillPie(brush, rectangle, 0.0f, -36.0f);
using (var pen = new Pen(line_color))
graphics.DrawEllipse(pen, rectangle);
}
protected override void OnResize(System.EventArgs e)
{
base.OnResize(e);
Invalidate();
}
}
}
using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
DoubleBuffered = true;
}
static Rectangle ApplyPadding(Rectangle rectangle, Padding padding)
{
var location = new Point(rectangle.Left + padding.Left, rectangle.Top + padding.Top);
var size = new Size(rectangle.Width - padding.Horizontal, rectangle.Height - padding.Vertical);
return new Rectangle(location, size);
}
static Rectangle MakeSquare(Rectangle rectangle)
{
var length = Math.Min(rectangle.Width, rectangle.Height);
var size = new Size(length, length);
return new Rectangle(rectangle.Location, size);
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
var padding = new Padding(30);
var rectangle = ApplyPadding(e.ClipRectangle, padding);
rectangle = MakeSquare(rectangle);
var fore_color = Color.Blue;
var back_color = Color.FromArgb(50, fore_color);
var line_color = Color.Black;
var graphics = e.Graphics;
graphics.Clear(Color.White);
using (var brush = new SolidBrush(back_color))
graphics.FillEllipse(brush, rectangle);
// Угол в градусах, но отсчитывается по часовой стрелке
using (var brush = new SolidBrush(fore_color))
graphics.FillPie(brush, rectangle, 0.0f, -36.0f);
using (var pen = new Pen(line_color))
graphics.DrawEllipse(pen, rectangle);
}
protected override void OnResize(System.EventArgs e)
{
base.OnResize(e);
Invalidate();
}
}
}
Похожие вопросы
- Зачем в С/C++ создан отдельный тип "указатель"
- Подскажите на языке c++ создал новый проект выбрал при создании windows applikation, Создал меню, в как???
- Как на C++ создать массив типа int из стольких элиментов, что бы значение бралось из перемнно count ?
- Помогите решить задачу: C# Создать рандомную матрицу nxn (выполнено) после чего сложить данные выделенные элементы:
- как создать свой сайт? можно ли это сделать при помощи конструктора сайтов? или нужно только в ручную писать весь код??
- C++ Вывести сообщение о том, какая из точек ближе к началу координат, и все соответствующие расстояния.
- Создать класс типа круг. C++
- Как правильно создать и использовать radiobutton-ы на win api c++ ?Можно ли из программы узнать версию Windows ?
- Delphi7 - как создать линии с единой точкой старта?
- Как в 3D Max'е переместить (или создать) Линию (line) так, чтоб её конец точно привязался к центру Круга (circle)?