|
0 / 0 / 0
Регистрация: 16.11.2021
Сообщений: 32
|
|
При запуске программы на форме появляется линия20.01.2022, 08:21. Показов 3918. Ответов 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
не появляется анимация при запуске программы
|
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,329
|
|
| 20.01.2022, 09:10 | |
|
По второй задаче уже есть тема При запуске программы на экранной форме появляются две фигуры Следите там.
0
|
|
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,329
|
||
| 20.01.2022, 10:06 | ||
|
0
|
||
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,329
|
|
| 20.01.2022, 11:16 | |
|
Я с линией вариант попроще начал делать. Решение на курсовую не потянет точно.
0
|
|
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,329
|
|
| 20.01.2022, 11:39 | |
|
DenNik, найти расстояние от точки до линии и всё.
1
|
|
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,329
|
||||||
| 20.01.2022, 12:38 | ||||||
|
Вот как-то так по простому наваял первую задачу. На форме ничего. Нужно только приделать соответствующие обработчики событий:
0
|
||||||
|
Житель Земли
|
|||||||||||||
| 20.01.2022, 15:04 | |||||||||||||
|
Забил на работу и наваял
Итаквот эти требования
Способ определения нахождения курсора "над" линией применил отличный от класс "линия"
основное приложение
в архиве готовый ехе
1
|
|||||||||||||
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,329
|
|
| 20.01.2022, 15:20 | |
|
0
|
|
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,329
|
|
| 20.01.2022, 16:16 | |
|
Так если точку двигать вдоль линии, то и будет эллипс. Это же метод построения эллипса, когда сумма расстояний от точки эллипса до каждого фокуса - постоянное число.
0
|
|
|
Житель Земли
|
||
| 20.01.2022, 16:24 | ||
Length = B + C (с учётом погрешности сравнения типа Extended) - то принадлежит. А CURSOR - это координаты курсора из события MouseMoveРасстояния Length, B,C являются гипотенузами соответствующих треугольников. вот и всё
0
|
||
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,329
|
|
| 20.01.2022, 16:38 | |
|
DenNik, поставь вместо 0.1 где-то 5-10 и наглядно увидишь, в середине линии расстояние, при котором меняется курсор, больше, чем у концов линии.
0
|
|
|
Житель Земли
|
||
| 20.01.2022, 16:50 | ||
0,1 - это допустимая погрешность сравнения типов Extended.Добавлено через 2 минуты Данный механизм сравнения, если уж выражаться высокопарно, является частью "движка" линии и не предусматривает изменения извне. Так зачем мне менять это значение, если результат работы (курсор меняется только если указатель мыши находится "над" линией) удовлетворяет условиям задачи? Добавлено через 36 секунд AzAtom, ты хоть запускал приложение из архива?
0
|
||
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,329
|
||||||||
| 20.01.2022, 16:56 | ||||||||
![]() Ещё и использовал кусок твоего кода, чтобы построить приложенную картину. ![]()
1
|
||||||||
|
Житель Земли
|
||
| 20.01.2022, 17:04 | ||
|
AzAtom, объясни мне толком, каким боком здесь вообще эллипс?
У нас дано: - отрезок (наша линия) - точка (позиция курсора мыши) Определить: - лежит ли точка на отрезке (находится ли курсор "над" линией) Способ определения: - вычислить длину отрезка (A) - вычислить расстояние от точки до начала отрезка (B) - вычислить расстояние от точки до конца отрезка (C) Если выполняется условие А = В + С - задача решена.Это чистая геометрия за 6 класс. Так каким боком здесь эллипс? Добавлено через 1 минуту
0
|
||
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,329
|
|||||||
| 20.01.2022, 17:11 | |||||||
|
Вот, вернул ту самую погрешность 0.1 и сделал линию длиной в 700 пикселей. Красная область это то место, где будет определено, что курсор попал на линию:
1
|
|||||||
| 20.01.2022, 17:11 | |
|
Помогаю со студенческими работами здесь
20
При запуске программы окружность не появляется JFrame при запуске программы форма не появляется При запуске программы появляется следующая ошибка
Консоль появляется только на мгновение при запуске программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|