|
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 73
|
|
Перерисовка точек через координаты при масштабировании03.04.2016, 16:25. Показов 2292. Ответов 16
Метки нет (Все метки)
Несколько тем назад спрашивала про масштабирование)
Совсем ничего придумать не могу. есть Image, который масштабируется, но на всем есть точки Shape, нужно чтобы они при изменении масштаба оставались на тех же местах относительно рисунка, понимаю, что надо удалить все точки старые и по новому перерисовать по координатам из таблицы, предварительно пересчитав из через масштаб. но не могу это реализовать, одна точка получатся, но при цикле ничего не выходит. помогите, пожалуйста!!
0
|
|
| 03.04.2016, 16:25 | |
|
Ответы с готовыми решениями:
16
Image. Привязаться к участку изображения, или изменять координаты вывода на canvas при масштабировании У квадрата ABCD на плоскости известны координаты двух противоположных вершин - точек A и C. Найти координаты точек B и
|
|
place status here
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,023
|
|
| 03.04.2016, 16:28 | |
|
Хорошим тоном считается выкладывать свои наработки. Глядишь, с большей вероятностью кто-то поможет.
0
|
|
|
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 73
|
|
| 03.04.2016, 16:30 [ТС] | |
|
gunslinger, в прикрепленных весь проект)) не сразу смогла его прикрепить)
0
|
|
|
place status here
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,023
|
|
| 03.04.2016, 19:19 | |
|
Для каждой существующей точки пересчитываешь координаты в зависимости от масштаба.
Если для одной точки выходит, то в чем проблема для всех точек?
0
|
|
|
|
|
| 03.04.2016, 19:39 | |
|
TPaintBox::OnPaint + Canvas->Ellipse()
Краткое руководство по работе с классом TCanvas для начинающих
0
|
|
|
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 73
|
|
| 03.04.2016, 21:15 [ТС] | |
|
gunslinger,
видимо, у меня проблемы с циклом получаются и не могу удалить старые точки, в общем в конце концом я все окончательно сломала и ничего не рисует, но даже если и рисовалась одна, ее функции как у других не сохранялись( я в отчаянии(
0
|
|
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|||
| 03.04.2016, 23:23 | |||
|
0
|
|||
|
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 73
|
|
| 03.04.2016, 23:44 [ТС] | |
|
nick42, но ведь если делать корректировку каждой координаты, получается меняем значения в таблице( чего бы не хотелось), или все равно отрисовывается по-новому, очень хочу понять, но не могу
0
|
|
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
||
| 03.04.2016, 23:48 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 73
|
||||||
| 04.04.2016, 10:02 [ТС] | ||||||
|
nick42,
может быть, сейчас совсем глупость сделала но как-то примерно так должно выглядеть?[C]TableShape *tq = dynamic_cast<TableShape *>(Sender);
0
|
||||||
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|
| 04.04.2016, 10:35 | |
|
Ну, примерно. Только Sender'а в вашем случае не будет. Элемент нужно из стринггрида "вытаскивать, по индексу или поиском (я не вникал, как вы этот массив организовали).
0
|
|
|
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 73
|
|||||||||||
| 14.04.2016, 20:09 [ТС] | |||||||||||
|
nick42, вот еще раз жутко извиняюсь, но до сих пор так и не поборола. Проблема в том, что пытаюсь собрать и понять, но со вторым сложнее:
Здесь код, когда тогда перемещается, удаляется и ставится.
0
|
|||||||||||
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
||||||
| 15.04.2016, 15:08 | ||||||
|
Для лучшего понимания - вот пример закрашивания выбранной в таблице точки в желтый цвет__
Насколько я в курсе вашей проблемы с отображением точек в "окне линзы", - вам нужно всего лишь добавлять новые точки на Image линзы по количеству попавших точек в область прямоугольника "линзы". Масштабировать их не нужно, а нужно просто пересчитать координаты их положения с учетом положения рамки и точек-оригиналов. Для определения наличия точки внутри рамки (прямоугольника) можно применить функцию PtInRect().
0
|
||||||
|
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 73
|
|
| 15.04.2016, 18:55 [ТС] | |
|
сейчас попробую разобраться))
от линзы я отказалась, теперь просто в том же Image загружается картинка в другом масштабе, с появлениями полосы прокрутки, поэтому именно перерисовываются
0
|
|
|
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 73
|
||||||
| 15.04.2016, 20:22 [ТС] | ||||||
|
ввела цикл, по строкам чтобы перебил
но при одной точке все прекрасно работает он перерисовывает, но если точек больше, удаляет все кроме последней. но ее масштабирует..нужно как то по другому их связать?
0
|
||||||
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|
| 15.04.2016, 22:12 | |
|
..а где вы логику оставили?
![]() Смотрите: внешним циклом (по it) вы последовательно присваиваете виртуальной "точке" tq все позиции "точек" списка; а внутренним циклом - по i - вы перемещаете эту несчастную виртуальную точку n раз, - сколько строк, то-есть точек, в таблице. Где она после этих перемещений окажется - одному богу известно. Цикл нужен один, по строкам таблицы точек, но сначала по координатам точки из таблицы назначается виртуальной "точке" реальная из списка, а затем её координаты устанавливаются по новой, учитывая масштаб изображения (в таблице точек ничего изменять не нужно). Вот приблизительно так я это вижу.
0
|
|
|
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 73
|
||
| 16.04.2016, 11:07 [ТС] | ||
|
Но в а целом спасибо большое!, разобралась! все работает! Очень вам благодарна, на терпеливые объяснения!
0
|
||
| 16.04.2016, 11:07 | |
|
Помогаю со студенческими работами здесь
17
Найти координаты точек С, если известны координаты точек А Как изменить координаты точек на графике через массив?
Описать класс треугольник через координаты трех точек Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита табличной части. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|