On-line: Andrey, гостей 0. Всего: 1 [подробнее..]
АвторСообщение



Пост N: 582
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 12.05.18 10:56. Заголовок: Круг из контролов



Понадобилось изобразить круг из контролов (напр.RADIOBUTTON)
Типа циферблата. Т.е. нужен алгоритм вычисления координат точек располагающихся по окружности.
Не делал ли кто ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 5 [только новые]


администратор




Пост N: 1242
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 12.05.18 15:17. Заголовок: fil пишет: Не делал..


fil пишет:

 цитата:
Не делал ли кто


В школе в 7 классе делал.
360градусоа делишь на количество точек. Получаешь шаг угла.
Потом через синус и косинус получаешь координаты от угла

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 3727
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 14.05.18 13:03. Заголовок: Поищите алгоритм Бре..


Поищите алгоритм Брезенхема
Например: http://algolist.manual.ru/graphics/painting/circle.php

PS Нашел у себя в архивах программку 1990 года, наверное как раз реализация этого алгоритма. Там всего 40 строк, только целочисленные операции. Давать не буду, поскольку сам не вспомню, как он работал. Да и не соберу уже: tc для dos не сохранился.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 583
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 14.05.18 18:07. Заголовок: Спасибо, Паша ! Я уж..


Спасибо, Паша ! Я уже все сделал. Неохота было самому это
описывать
X:=X0+R*cos(0.017*N*(шаг))
Y:=Y0+R*sin(0.017*N*(шаг))

ну раз нет халявы...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 328
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 14.05.18 18:26. Заголовок: Все упирается в по..


Все упирается в постановку задачи :) В данном случае круг надо рисовать радиобутонами. Поэтому чем меньше круг тем меньше будет кнопок.
Значит надо знать какова должна быть точность результата - т.е. сколько кнопок нужно ( можно ) влепить.
На бумажке быстренько получаем координаты ( действительно школьный курс) и в соответствии с ними пишем пр-ку.

x=r*Cos(f)
y=r*Sin(f)

и далее рисуем кнопки. Понятно ( еще раз ) , что точность выбора ограничивается кол-м кнопок. Если задача предусматривает произвольный выбор, то можно использовать стандартные команды FW.

@ 40, 75 SAY oSay2 VAR cSay2 SIZE 80,18 PIXEL BORDER COLOR CLR_RED OF oWnd

@ 65, 20 SELECTOR oSelec VAR nVar1 OF oWnd ;
ORIGIN ANGLE 240 ; // en grados sexagésimales
LAST ANGLE 120 ; // estando el origen cero en el punto superior
RANGE 100, 200 ;
MARKS 11;
SIZE 200, 150 PIXEL ;
ON CHANGE oSay2:SetText( STR( nVar ) )

В этом случае "бегунок" мышкой можем поставить в любое место и на выходе получить угол .





Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 329
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 14.05.18 18:28. Заголовок: О! Пока писал Юра у..


О! Пока писал Юра уже все и своял :)))) Ну, удалять не буду - как вариант пусть остается :)

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 586
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет