![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 | |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
![]()
Здравствуйте! Есть такая задача:
Цитата:
![]() |
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
![]() |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]() Код:
Последний раз редактировалось macomics; 10.10.2022 в 11:19. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
![]() |
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]()
Я приложил скриншот. В коде все данные получены и расчеты приводятся.
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
![]()
Эллипс не просили рисовать, только, диаграмму, зачем тогда вообще использовать arc, если можно воспользоваться безгемморойной функцией. А как, и возможно ли, закрасить те сегменты, что нарисовали? CreateBrush() я правильно понимаю?
n * 2 * PI / 100 - это перевод в радианы, если я ничего не путаю. А как дальнейшее вычисление координат идёт я пока что вспомнить не могу. |
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]()
Angle = n * 2 * PI / 100; // Перевод % в радианы
offX = RadiusX * sin(Angle); // Вычисление точки на окружности (координата X, относительно cen) offY = RadiusY * cos(Angle); // Вычисление точки на окружности (координата Y, относительно cen) pnt = Point((cr.left + cen.x) + offX, (cr.top + cen.y) - offY); // Вычисление координат точки в окне Эллипс получается из-за приведенных вами данных: 25 + 65 + 10 = 100 Используйте FloodFill, но надо вычислить точку X = ((cr.left + cen.x) + pos0.x + pos1.x) / 3 и Y = ((cr.top + cen.y) + pos0.y + pos1.y) / 3, которая будет всегда внутри фигуры (3 - это количество точек в частном). Хотя наверное лучше будет просто убрать из расчетов центральную точку, но это уже вы поэкспериментируйте. cen - вычисляется относительно левого верхнего угла белого прямоугольника, а значит в ней записаны относительные координаты центра этого прямоугольника и одновременно радиусы эллипса. arcX - это углы в радианах точек на эллипсе соответствующих сегментов pntX - это точки на эллипсе вычисленные относительно левого верхнего угла окна Последний раз редактировалось macomics; 10.10.2022 в 14:30. |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
![]()
Я несколько другими формулами пользовался:
x = pCenter.x + 0.5 * cxEllipse * cos(2 * PI * Angle); y = pCenter.y - 0.5 * cyEllipse * sin(2 * PI * Angle); pCenter - координаты центра эллипса. cxEllipse - ширина эллипса cyEllipse - высота эллипса Angle - 0.1, 0.65, 0.25 Но вывод получается некрасивый, если уж на то пошло, то я понимаю, как вычислять координаты и в тоже время не понимаю, значит всё же не до конца понимаю. Короче говоря мой код такой: Код:
Белого прямоугольника? может рабочей области окна? Или я что-то не так понял... |
![]() |
![]() |
![]() |
#10 | |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]() Цитата:
sin и cos не отсчитывается по вашему желанию относительно какой-то оси. Они всегда привязаны к координатным осям. Поэтому управлять этими функциями вы можете только задавая углы относительно осей координат. Последний раз редактировалось macomics; 11.10.2022 в 09:51. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нарисовать круговую диаграмму | Proskurina | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 08.11.2012 08:50 |
Нарисовать столбиковую диаграмму по результатам сдачи экзамена по матану | Proskurina | Паскаль, Turbo Pascal, PascalABC.NET | 8 | 07.11.2012 23:14 |
Нарисовать столбиковую диаграмму | Proskurina | Помощь студентам | 2 | 24.10.2012 13:40 |
Нарисовать диаграмму сравнения методов | Gebbellz | Помощь студентам | 0 | 15.12.2010 17:52 |
нарисовать круговую диаграмму в паскале | vbchristy46 | Помощь студентам | 2 | 28.06.2010 20:33 |