Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
4 / 4 / 0
Регистрация: 04.04.2010
Сообщений: 85

Определение координат точек на PictureBox

01.12.2011, 21:18. Показов 3660. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте интересует как была сделана программа (внизу выложена фотка). Насколько я понимаю там Picture box при рисовании точек в котором координаты этих точек перемещаются в координаты таких же по положению значений в массиве, и после идёт поиск самого параллелограма.Интересует вот что, как точки нарисованные пользователем переместить в массив с такими же координатами, а именно насколько я понимаю координаты будут выходить по X-у и по Y-ку, а конвертировать их надо в координаты [I][j], создателя программы не знаю и информации никакой не могу достать по ней.БУду рада любой идее)) Или как сделать задачу иначе.( Сама задача это поиск максимального пустого прямоугольного участка без деревьев.)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.12.2011, 21:18
Ответы с готовыми решениями:

Клик по PictureBox: получение координат клика на PictureBox.Image
Собственно имею PictureBox, например размерами 500 на 500 и в нем есть картинка, например размерами 1000 на 1000, я ее масштабирую, что бы...

Определение координат точек
даже не знаю куда писать... такой тематики тут нету... ситуация... я рисую 3D-круговую диаграмму... и возникла делема... 3д-шность я...

Определение координат точек, лежащих на параллельных прямых. Практическая задача География
Необходимо рассчитать координаты точек участка на карте. Система координат - наш глобус, точки А и Б с привязкой к координатам взяты с...

5
4 / 4 / 0
Регистрация: 04.04.2010
Сообщений: 85
02.12.2011, 03:37  [ТС]
Простите за тупость видимо там они создаются рандомайзно, но всё же главный вопросс остаётся в силе как сделать так чтобы допустим уже сам массив а он может быть и 200 на 200 выводился в PicturereBox, в гугл не посылайте сама туда иду))
0
 Аватар для sau
2773 / 2073 / 386
Регистрация: 22.07.2011
Сообщений: 7,821
02.12.2011, 04:24
Я так понял размеры прямоугольника задаются пользователем (судя по ползункам на картинке) ?
- в этом случае все довольно просто, последовательно анализируем прямоугольные области на наличие "чужих" координат точек -если находим, то следующая точка старта будет координата крайне-правого пикселя пока не упремся в максимальные координаты по X.
Затем смещаемся по Y на высоту прямоугольника и повторяем операцию, так до тех пор пока в нашем регионе не будет чисто.
Но вообще наверное задача более каверзная, - когда размеры нужной области нам не известны, тогда вероятно нужно делать тоже самое, только постепенно увеличивать (или быстрее уменьшать) размеры прямоугольника.
Каким боком тут деревья мне не понятно ) - может есть конечно более "математические" способы поиска (типа имея координаты всех точек вычислить расстояния, построить графы, и получить координаты прямоугольника), я привел самый "тупой"
0
4 / 4 / 0
Регистрация: 04.04.2010
Сообщений: 85
02.12.2011, 12:28  [ТС]
Ваш описанный алгоритм у меня есть, у меня выводится подматрица максимального размера, она же по заданию и ищется, до этого я хотела динамически создавать просто лэйблы или пикчер боксы и каждый лэйбл привязать к соответствующему [i,j] элементу матрицы,и так как по моему алгоритму конечный результат поиска подматрицы это та же матрица с выделенной подматрицой, соответственно все лэйблы которые связаны с матрицой будут как бы визуализировать её,и мне нужный прямоугольник будет выделен.Я тут заступорилась с динамичческим созданием лэйблов так как значения i,j присваиваются и вскоре становятся каласального размера то у меня выскакивает ошибка превышения размерности индекса пикчер бокса. Поэтому ищу другой вариан, пришло в голову что просто матрица будет вырисовываться на одном пикчербоксе но как это реализовать, оббегала все сслыки с названием "построение по координатам " но нужных результатов нет.Если есть ещё варианты как, то рада буду увидеть))
0
 Аватар для sau
2773 / 2073 / 386
Регистрация: 22.07.2011
Сообщений: 7,821
02.12.2011, 15:46
Чет не понял насчет PicturesBox-а и лэйблов.
А насчет алгоритма, я так подумал что проще вычислить максимальную разницу между X координатами и Y координатами, а потом в этих пределах вычислять найбольшую площадь среди множества возможных прямоугольников. - короче это на мат. форум, там вероятно еще больше алгоритмов подскажут.
Что касается программной реализации, тот тут все просто. - просто создаем обычный Bitmap нужного размера и рисуем на нем точки и прямоугольник. Размеры 200x200 и более это не проблема. А потом грузим его в PicturesBox.
http://msdn.microsoft.com/en-u... phics.aspx
0
4 / 4 / 0
Регистрация: 04.04.2010
Сообщений: 85
04.12.2011, 22:43  [ТС]
Скажите пожалуйста я решила рисовать всё на пикчер боксе, и проблема в том что не рисуется когда я насколько понимаю создаю объект класса
C#
1
2
    Form1 prog = new Form1();
            prog.drawOnPic(10, 20, 100);
для функции вывода квадрата
C#
1
2
3
4
5
6
7
8
9
10
11
   private void drawOnPic(int a,int b,int c)
        {  Image myImg = Image.FromFile("c:\\S.JPG");
            // Attach grapich to picturebox
            Graphics g = Graphics.FromImage(pictureBox1.Image);
 
            // Create a new pen that we shall use for drawing the line
            Pen PenStyle = new Pen(Color.Red, 1);
 
            // Draw a 50x50 pixels rectangle (x, y, width, hight)
            g.DrawRectangle(PenStyle, 10, 10, 10, 10);
        }
совсем заматалася, переводить в статический функцию нет резона ругается на пикчер бокс и требует его таким же сделать но резулятат в итоге: функция вызываеся ноо не выводится ничего, не говорите о том что изображения накладываются так как проверял запуская функцию один раз, совсем другой результат если убрать создание объект класса,
C#
1
2
 Form1 prog = new Form1();
            prog.drawOnPic(10, 20, 100);
и просто написать
C#
1
 drawOnPic(10, 20, 100);
тогда всё ок, помогите пожалуйста

Добавлено через 12 минут
и ещё скажите подалуйста как ускорить построение rectangle или предложите другой вариант как реализовать чтобы массив выводился графически в виде точек
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.12.2011, 22:43
Помогаю со студенческими работами здесь

Чтение координат точек из текстового файла, определение окружности охватывающей все точки, вывод результата
Задача: -чтение координат точек из текстового файла; -определение окружности (координаты центра и радиус); -вывод результата в файл,...

Массивы: определение координат точки, наиболее приближенной к началу координат
На плоскости 100 точек заданы своими координатами Х, Y. Составить программу для определения координат точки, наиболее приближенную к началу...

Ввести с клавиатуры последовательность из 20 координат точек (x,y) и определить максимальную из ординат точек
помогите кто сможет , завтра надо сдавать ргз а я не понимаю как делать ( если можно с блок схемой) 1.Ввести с клавиатуры...

Известны координаты двух точек. Найти расстояния от начала координат до этих точек.
Известны координаты двух точек A(x1,y1) и B(x2,y2). Найти расстояния от начала координат до этих точек. Не знаю как высчитать...

Программа, осуществляющая ввод координат трех точек на плоскости и выводящая сообщение, какая из них ближе к началу координат
Разработать программу,осуществляющую ввод координаты трех точек на плоскости о выводящее сообщение, какая из них ближе к началу координат.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru