|
0 / 0 / 0
Регистрация: 16.11.2021
Сообщений: 32
|
|
При запуске программы на форме появляется линия20.01.2022, 08:21. Показов 4476. Ответов 33
Метки нет (Все метки)
Помогите написать код, к одной из этих задач. Пожалуйста, буду благодарен.
1.При запуске программы на форме появляется линия. При наведении курсора на линию изменяются толщина и цвет линии. Нажатие в этом состоянии на левую клавишу мыши изменяет форму курсора: 1) если курсор находился на конце линии, то форма курсора отражает состояние «резиновая нить», в этом состоянии мы можем изменить положение конца линии путем перемещения мыши в другую точку; 2) если курсор находился в средней части линии, то форма курсора отражает состояние «перенос линии», в этом состоянии перемещение мыши приводит к параллельному перемещению линии по экранной форме. Отпускание мыши приводит задачу в исходное состояние, при этом линия остается в положении, которое она приняла в результате манипуляций. Используются события класса TForm: OnMouseDown, OnMouseMove, OnMouseUp. Для моделирования состояния задачи ввести с помощью перечислимого типа данных значения состояний: «исходное», «параллельный перенос линии», «сдвигать линию относительно конца 1», «сдвигать линию относительно конца 2». Требование: линия должна моделироваться отдельным классом. 2. При запуске программы на экранной форме появляются две фигуры: круг и квадрат. С помощью устройства «мышь» фигуры должны перемещаться по форме. Используются события класса TForm: OnMouseDown, OnMouseMove, OnMouseUp. Ограничение: фигуры не должны пересекать границы клиентской области формы. Предусмотреть класс фигура (TFigure) и его потомков: круг (TCircle), квадрат (TSquare). Метод перемещения фигур должен быть полиморфным. Требование: предполагается, что в будущем могут появиться новые фигуры, а существующие – исключены, поэтому программа должна обладать свойством модифицируемости.
0
|
|
| 20.01.2022, 08:21 | |
|
Ответы с готовыми решениями:
33
не появляется анимация при запуске программы
|
|
Житель Земли
|
|||
| 20.01.2022, 17:35 | |||
|
Добавлено через 4 минуты Геометрия (планиметрия) оперирует понятиями "прямая" и "точка". Прямая - одномерный "объект", точка вообще не имеет размерностей. Алгоритм решения задачи базируется на планиметрии, а все эти коэффициенты и погрешности - это уже издержки программирования, применяемые для того, чтобы реализация как можно более точно соответствовала алгоритму. Исходя из этого, считаю дальнейшие прения насчёт элиипсов бессмысленными Добавлено через 4 минуты AzAtom, разверни ситуацию на 180 градусов и ответь мне - Сможешь ли ты построить на бумаге отрезок длинной 15,123456 см? Вот то-то же )
0
|
|||
|
Модератор
4152 / 2361 / 814
Регистрация: 15.11.2015
Сообщений: 9,494
|
|||
| 20.01.2022, 17:44 | |||
![]()
0
|
|||
|
Житель Земли
|
||
| 20.01.2022, 17:58 | ||
Опять же, с пользовательской точки зрения ты не заметишь разницы.Вообще, сама задача, её класс, цель и "стоимость" не требует поиска и применения более совершенного алгоритма. Поигрались, мозг поразмяли и хватит. Тем более, задача чужая. Кто захочет, изменит код метода PointIn для более точного определения. Я разрешаю
0
|
||
|
3764 / 2272 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
|
| 20.01.2022, 22:32 | |
|
Есть замечательная WinApi функция LineDDA(), которая позволяет получить все точки на линии и не надо ничего вычислять.
1
|
|
|
Модератор
4152 / 2361 / 814
Регистрация: 15.11.2015
Сообщений: 9,494
|
|
| 20.01.2022, 23:03 | |
|
Пытливый, так-то мы и не вычисляли все точки на линии.
Интересная функция.
0
|
|
|
Житель Земли
|
|
| 20.01.2022, 23:26 | |
|
Хм, согласен, интересно. Получилось нарисовать линию с помощью этой функции
Добавлено через 1 минуту Создав массив точек, принадлежащих линии, можно просто проверять искомую точку на предмет вхождения в массив Добавлено через 2 минуты Ложка дёгтя заключается в том, что пиксель весьма мал и захватить такую линию будет весьма проблематично, особенно с похмелья).
0
|
|
|
3764 / 2272 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
|||||||
| 21.01.2022, 00:17 | |||||||
0
|
|||||||
|
Модератор
4152 / 2361 / 814
Регистрация: 15.11.2015
Сообщений: 9,494
|
||||||
| 21.01.2022, 08:52 | ||||||
|
Чего только люди не придумают вместо того, чтобы выполнить несколько арифметических операций и получить расстояние до линии за один приём?
![]() Переделал формулу, исключил извлечение квадратного корня:
3
|
||||||
|
Айлурофил
|
||||||
| 10.06.2024, 17:48 | ||||||
|
Есть стандартные геометрические формулы по расстоянию от точки до прямой.
Вот их реализация: nx,ny - координаты первой точки отрезка nx2,ny2 - координаты второй точки отрезка X,Y - координаты точки 5 - диапазон (диаметр) попадания
0
|
||||||
|
3764 / 2272 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
|||
| 10.06.2024, 18:34 | |||
|
0
|
|||
|
Айлурофил
|
|
| 10.06.2024, 18:56 | |
|
0
|
|
|
3764 / 2272 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
||
| 10.06.2024, 20:57 | ||
|
0
|
||
|
Айлурофил
|
||
| 10.06.2024, 23:09 | ||
|
Во-вторых, вот пример и для "линии", и для "точки".
0
|
||
| 10.06.2024, 23:09 | |
|
При запуске программы окружность не появляется JFrame при запуске программы форма не появляется При запуске программы появляется следующая ошибка
Консоль появляется только на мгновение при запуске программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
|
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс
Ссылка на сгенерированную музыкальную композицию:
https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013
Я говорю, что Время- как вода
течет. . .
|
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла:
Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Салют, шампанское, овации!
:drink:
|