0 / 0 / 0
Регистрация: 16.11.2021
Сообщений: 32
|
|
1 | |
При запуске программы на форме появляется линия20.01.2022, 08:21. Показов 2779. Ответов 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
не появляется анимация при запуске программы Появляется картинка при запуске программы Не появляется DataGritView при запуске программы При запуске программы окружность не появляется JFrame при запуске программы форма не появляется |
Модератор
3758 / 2262 / 783
Регистрация: 15.11.2015
Сообщений: 9,000
|
|
20.01.2022, 09:10 | 2 |
По второй задаче уже есть тема При запуске программы на экранной форме появляются две фигуры Следите там.
0
|
Модератор
3758 / 2262 / 783
Регистрация: 15.11.2015
Сообщений: 9,000
|
|
20.01.2022, 10:06 | 4 |
Если делать основательно, то код к первой задаче будет довольно объёмным. Тут проще сделать на основе существующих компонентов, например, взять реализацию TShape и переделать его под линию. Это будет новый компонент. Уверен, преподаватель не поверит, что это ты сам сделал.
0
|
Модератор
3758 / 2262 / 783
Регистрация: 15.11.2015
Сообщений: 9,000
|
|
20.01.2022, 11:16 | 6 |
Я с линией вариант попроще начал делать. Решение на курсовую не потянет точно.
0
|
Модератор
3758 / 2262 / 783
Регистрация: 15.11.2015
Сообщений: 9,000
|
|
20.01.2022, 11:39 | 8 |
DenNik, найти расстояние от точки до линии и всё.
1
|
Модератор
3758 / 2262 / 783
Регистрация: 15.11.2015
Сообщений: 9,000
|
||||||
20.01.2022, 12:38 | 9 | |||||
Вот как-то так по простому наваял первую задачу. На форме ничего. Нужно только приделать соответствующие обработчики событий:
0
|
Житель Земли
|
|||||||||||
20.01.2022, 15:04 | 10 | ||||||||||
Забил на работу и наваял Итак
вот эти требования Способ определения нахождения курсора "над" линией применил отличный от - см. комментарии в коде класс "линия"
основное приложение
в архиве готовый ехе
1
|
Модератор
3758 / 2262 / 783
Регистрация: 15.11.2015
Сообщений: 9,000
|
|
20.01.2022, 15:20 | 11 |
0
|
Модератор
3758 / 2262 / 783
Регистрация: 15.11.2015
Сообщений: 9,000
|
|
20.01.2022, 16:16 | 14 |
Так если точку двигать вдоль линии, то и будет эллипс. Это же метод построения эллипса, когда сумма расстояний от точки эллипса до каждого фокуса - постоянное число.
0
|
Житель Земли
|
|
20.01.2022, 16:24 | 15 |
а зачем мне двигать точку вдоль линии? Мне нужно определить, принадлежит ли точка CURSOR (см. рисунок) отрезку с координатами (X1,Y1) (X2,Y2). Если выполняется условие
Length = B + C (с учётом погрешности сравнения типа Extended) - то принадлежит. А CURSOR - это координаты курсора из события MouseMoveРасстояния Length, B,C являются гипотенузами соответствующих треугольников. вот и всё
0
|
Модератор
3758 / 2262 / 783
Регистрация: 15.11.2015
Сообщений: 9,000
|
|
20.01.2022, 16:38 | 16 |
DenNik, поставь вместо 0.1 где-то 5-10 и наглядно увидишь, в середине линии расстояние, при котором меняется курсор, больше, чем у концов линии.
0
|
Житель Земли
|
|
20.01.2022, 16:50 | 17 |
А зачем мне это делать? 0,1 - это допустимая погрешность сравнения типов Extended.
Добавлено через 2 минуты Данный механизм сравнения, если уж выражаться высокопарно, является частью "движка" линии и не предусматривает изменения извне. Так зачем мне менять это значение, если результат работы (курсор меняется только если указатель мыши находится "над" линией) удовлетворяет условиям задачи? Добавлено через 36 секунд AzAtom, ты хоть запускал приложение из архива?
0
|
Модератор
3758 / 2262 / 783
Регистрация: 15.11.2015
Сообщений: 9,000
|
||||||
20.01.2022, 16:56 | 18 | |||||
Чтобы увидеть, что это действительно эллипс.
Конечно. Ещё и использовал кусок твоего кода, чтобы построить приложенную картину.
1
|
Житель Земли
|
|
20.01.2022, 17:04 | 19 |
AzAtom, объясни мне толком, каким боком здесь вообще эллипс?
У нас дано: - отрезок (наша линия) - точка (позиция курсора мыши) Определить: - лежит ли точка на отрезке (находится ли курсор "над" линией) Способ определения: - вычислить длину отрезка (A) - вычислить расстояние от точки до начала отрезка (B) - вычислить расстояние от точки до конца отрезка (C) Если выполняется условие А = В + С - задача решена.Это чистая геометрия за 6 класс. Так каким боком здесь эллипс? Добавлено через 1 минуту ЗАЧЕМ из линии делать эллипс, не врублюсь никак?!
0
|
Модератор
3758 / 2262 / 783
Регистрация: 15.11.2015
Сообщений: 9,000
|
||||||
20.01.2022, 17:11 | 20 | |||||
При том, что ты его использовал.
Вот, вернул ту самую погрешность 0.1 и сделал линию длиной в 700 пикселей. Красная область это то место, где будет определено, что курсор попал на линию:
1
|
20.01.2022, 17:11 | |
20.01.2022, 17:11 | |
Помогаю со студенческими работами здесь
20
При запуске программы появляется следующая ошибка Почему при запуске программы в программе появляется консоль? Консоль появляется только на мгновение при запуске программы При запуске программы появляется ошибка: list index out of bounds (0) При запуске игры появляется окно - Прекращение работы программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
|
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins
В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
|
Как написать микросервис на Go/Golang с Kafka и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang
Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
|
Как написать микросервис с нуля на C# с RabbitMQ, CQRS и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
|
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
|
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
|
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
|
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента!
4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве).
Первое вводное занятие. . .
|
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
|
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений
Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
|
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
|
UserScript для подсветки кнопок языков программирования в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения:
/ / ==UserScript==
/ / @name CF_DefaultLangSelect
/ / . . .
|