|
0 / 0 / 0
Регистрация: 16.11.2021
Сообщений: 32
|
|
При запуске программы на форме появляется линия20.01.2022, 08:21. Показов 3972. Ответов 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,347
|
|
| 20.01.2022, 09:10 | |
|
По второй задаче уже есть тема При запуске программы на экранной форме появляются две фигуры Следите там.
0
|
|
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,347
|
||
| 20.01.2022, 10:06 | ||
|
0
|
||
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,347
|
|
| 20.01.2022, 11:16 | |
|
Я с линией вариант попроще начал делать. Решение на курсовую не потянет точно.
0
|
|
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,347
|
|
| 20.01.2022, 11:39 | |
|
DenNik, найти расстояние от точки до линии и всё.
1
|
|
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,347
|
||||||
| 20.01.2022, 12:38 | ||||||
|
Вот как-то так по простому наваял первую задачу. На форме ничего. Нужно только приделать соответствующие обработчики событий:
0
|
||||||
|
Житель Земли
|
|||||||||||||
| 20.01.2022, 15:04 | |||||||||||||
|
Забил на работу и наваял
Итаквот эти требования
Способ определения нахождения курсора "над" линией применил отличный от класс "линия"
основное приложение
в архиве готовый ехе
1
|
|||||||||||||
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,347
|
|
| 20.01.2022, 15:20 | |
|
0
|
|
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,347
|
|
| 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,347
|
|
| 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,347
|
||||||||
| 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,347
|
|||||||
| 20.01.2022, 17:11 | |||||||
|
Вот, вернул ту самую погрешность 0.1 и сделал линию длиной в 700 пикселей. Красная область это то место, где будет определено, что курсор попал на линию:
1
|
|||||||
| 20.01.2022, 17:11 | |
|
Помогаю со студенческими работами здесь
20
При запуске программы окружность не появляется JFrame при запуске программы форма не появляется При запуске программы появляется следующая ошибка
Консоль появляется только на мгновение при запуске программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
||||
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
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. . .
|