![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| linuss |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 20.10.2009 Репутация: нет Всего: нет |
Добрый день,
Я в программе создал курсор в виде окружности, радиус которой пользователь задает самостоятельно. И когда происходит событие Picture_MouseDown у меня происходит копирование части изображения в виде квадрата. Вопрос заключается в том как мне можно используя геометрию, программно определить какие пиксели из скопированного квадрата входят в окружность, радиус которой задан пользователем. Я нашел на форумах такую формулу x^2+y^2<=r^2, но она не подходит. И я хотел у вас попросить помощи в решении данного вопроса. |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| linuss |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 20.10.2009 Репутация: нет Всего: нет |
Просто я пробовал на листочке просчитать, и не получается. Ведь когда берешь координаты пикселей то отсчет идет с верхнего левого угла.
И не получается. Не сходится. Добавлено через 14 минут и 5 секунд Хотя все нашел решение, но вот для него необходимо знать координаты центра окружности, тогда идет встречный вопрос. Есть ли какая нибудь геометрическая формула для вычисления центра окружности. |
|||
|
||||
| SickFxck |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 16.4.2010 Репутация: нет Всего: 1 |
linuss, а что тебе дано для вычисления этого центра?
|
|||
|
||||
| Heinzz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 12.12.2008 Где: .net Репутация: 3 Всего: 9 |
это и есть координаты курсора
|
|||
|
||||
| Pilger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 10.5.2008 Где: Германия Репутация: нет Всего: нет |
Ну дык позиция курсора + радиус круга. Вот тебе и центр. Че его искать то. Это если курсор определяет левое верхнее положение круга. А если он определяет центр круга, то его и искать не надо. Не понятно.
Это сообщение отредактировал(а) Pilger - 10.5.2010, 12:10 -------------------- Ein Leben nach der Schleife existiert, nur wenn die Schleife terminiert. |
|||
|
||||
| C4EBA |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 13.4.2009 Репутация: нет Всего: 1 |
Наверное, все возможные варианты расположения курсора относительно окружности будут такие:
1) Если курсор определяет верхний левый угол квадрата, в который вписана окружность, радиус R которой задает пользователь, то в этом случае координаты центра окружности равны: координата курсора по горизонтали + R: координата курсора по вертикали + R. 2) Если курсор определяет верхний правый угол квадрата, в который вписана окружность, радиус R которой задает пользователь, то в этом случае координаты центра окружности равны: координата курсора по горизонтали - R: координата курсора по вертикали + R. 3) Если курсор определяет нижний правый угол квадрата, в который вписана окружность, радиус R которой задает пользователь, то в этом случае координаты центра окружности равны: координата курсора по горизонтали - R: координата курсора по вертикали - R. 4) Если курсор определяет нижний левый угол квадрата, в который вписана окружность, радиус R которой задает пользователь, то в этом случае координаты центра окружности равны: координата курсора по горизонтали + R: координата курсора по вертикали - R. linuss, выбирай свой вариант |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |