Полярная система координат — двухмерная система координат, в которой каждая точка на плоскости однозначно определяется двумя числами — полярным углом и полярным радиусом. Полярная система координат особенно полезна в случаях, когда отношения между точками проще изобразить в виде радиусов и углов; в более распространённой, декартовой или прямоугольной системе координат, такие отношения можно установить только путём применения тригонометрических уравнений.
Полярная система координат задаётся лучом, который называют нулевым или полярной осью. Точка, из которой выходит этот луч, называется началом координат или полюсом. Любая точка на плоскости определяется двумя полярными координатами: радиальной и угловой. Радиальная координата (обычно обозначается ) соответствует расстоянию от точки до начала координат. Угловая координата также называется полярным углом или азимутом и обозначается , равна углу, на который нужно повернуть против часовой стрелки полярную ось для того, чтобы попасть в эту точку.[1]
Определённая таким образом радиальная координата может принимать значения от нуля до бесконечности, а угловая координата изменяется в пределах от 0° до 360°. Однако, для удобства область значений полярной координаты можно расширить за пределы полного угла, а также разрешить ей принимать отрицательные значения, что отвечает повороту полярной оси по часовой стрелке.
Для того чтобы создать программу в которой будет происходить рисование кардиоиды, функций синуса и косинуса , 3-,5- ,7- и 128-лепескового цветка, и т.д. Вам нужно:В полярной системе координат уравнение окружности радиуса 5 единиц с центром в полюсе имеет вид |
***
В полярной системе координат уравнение r = cos φ описывет окружность со смеженным центром: |
***
В полярной системе координат уравнение r = cos 2φ описывет "двухлепестковую розу": |
***
Уравнение r = cos 3φ описывет "трехлепестковую розу": |
***
Уравнение r = cos 4φ описывет "четырехлепестковую розу": |
***
Уравнение r = cos 5φ описывет "пятилестковую розу": |
***
Уравнение r = cos 8φ описывет "восьмипестковую розу": |
Для создания такой программы нужно скачать файл Program2015.rar
Разархивируем его в рабочую папку
Запускаем
Редактируем файл ProgramDlg.h
Выделяем содержимое файла и вставляем приведенный ниже код:
// ProgramDlg.h : файл заголовка
//
#pragma once
#define mtime 298
#define PI 3.14159265358979323846
// диалоговое окно CProgramDlg
class CProgramDlg : public CDialog
{
// Создание
public:
CProgramDlg(CWnd* pParent = NULL); // стандартный конструктор
// Данные диалогового окна
enum { IDD = IDD_PROGRAM_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // поддержка DDX/DDV
// Реализация
protected:
HICON m_hIcon;
// Созданные функции схемы сообщений
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
private:
COLORREF cf, ck, c[25];
HFONT hold, hNew, hbk;
HPEN hPenOxy, hOldPen, pen;
HBRUSH m, oldm, brush;
CPen d, oldd;
CBitmap pic;
CRect rc, w, kw[30];
CString msg, t, z;
int Matrix[50][50];
int x1, y1, x2, y2, x3, y3, x4, y4;
int RH, RW, k, i, j, p, x, y, cx, cy, dx, dy;
bool fg;
public:
afx_msg void OnFilePolar1();
afx_msg void OnFilePolar2();
afx_msg void OnFilePolar3();
afx_msg void OnFilePolar4();
afx_msg void OnFilePolar5();
afx_msg void OnFilePolar6();
afx_msg void OnFilePolar7();
afx_msg void OnFileSinx();
afx_msg void OnFileCosx();
};
Редактируем файл ProgramDlg.cpp
Выделяем содержимое файла и вставляем приведенный ниже код:
// ProgramDlg.h : файл заголовка
//
#pragma once
#define mtime 298
#define PI 3.14159265358979323846
// диалоговое окно CProgramDlg
class CProgramDlg : public CDialog
{
// Создание
public:
CProgramDlg(CWnd* pParent = NULL); // стандартный конструктор
// Данные диалогового окна
enum { IDD = IDD_PROGRAM_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // поддержка DDX/DDV
// Реализация
protected:
HICON m_hIcon;
// Созданные функции схемы сообщений
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
private:
COLORREF cf, ck, c[25];
HFONT hold, hNew, hbk;
HPEN hPenOxy, hOldPen, pen;
HBRUSH m, oldm, brush;
CPen d, oldd;
CBitmap pic;
CRect rc, w, kw[30];
CString msg, t, z;
int Matrix[50][50];
int x1, y1, x2, y2, x3, y3, x4, y4;
int RH, RW, k, i, j, p, x, y, cx, cy, dx, dy;
bool fg;
public:
afx_msg void OnFilePolar1();
afx_msg void OnFilePolar2();
afx_msg void OnFilePolar3();
afx_msg void OnFilePolar4();
afx_msg void OnFilePolar5();
afx_msg void OnFilePolar6();
afx_msg void OnFilePolar7();
afx_msg void OnFileSinx();
afx_msg void OnFileCosx();
};