0 / 0 / 0
Регистрация: 17.11.2018
Сообщений: 6
|
|
1 | |
Построить четырехугольник с заданными сторонами03.04.2019, 21:21. Показов 13956. Ответов 23
Решить задачу и используя функции класса TСanvas нарисовать соответствующую геометрическую фигуру. Даны четыре числа а, b, с, d. Необходимо определить, существует ли четырехугольник с такими длинами сторон.
В общем условие существования я то проверил, но сложности возникли с нахождением координат и построением. Препод сказал,что вроде можно одну координату задать или за (0;0) обозначить. Помогите хотя-бы объяснением на словах.
0
|
03.04.2019, 21:21 | |
Ответы с готовыми решениями:
23
Построить четырехугольник Выяснить, можно ли построить прямоугольный треугольник со сторонами K, L, M Задан треугольник тремя сторонами A, B и C. Построить программу вычисления его углов в градусах. Пройдет ли кирпич со сторонами x,y,z сквозь прямоугольное отверстие со сторонами r и s. Стороны отверстия долж |
03.04.2019, 21:27 | 2 |
Сообщение было отмечено cntrcltre как решение
Решение
не хватает половины данных для построения, да и для првоерки тоже... надо либо 4 коордианты вершин(8 значений), либо длины сторон + углы, по данным 4 числам (этим длинам) можно только построить точки на числовой оси и ничего адекватного больше
1
|
0 / 0 / 0
Регистрация: 17.11.2018
Сообщений: 6
|
|
03.04.2019, 21:33 [ТС] | 3 |
Я это и так знаю. Если бы всё это было дано, то я бы сделал без проблем. Подходил с этим вопросом к преподу,он сам толком не знает, только плечами пожимает и говорит, что такой идиотский вариант попался. Но мне то нужно сдать. Мы с ним пытались что-то думать, но в итоге всё скатывается в задачу, которую я даже на листе толком то решить не могу.
0
|
03.04.2019, 21:49 | 4 |
это шутка такая??? препод курит чота с вами на уроках?)) дайте тоже попробовать)))
а как сдать если препод не знает, как он проверять будет?))))) я ф шоке .. ппц.. а мы то чем поможем решить?))) физику и математику перевернем и научимся строить по длинам сторон фигуры не имея дополнительных данных... только меня смущает вот чо покажи! Добавлено через 11 минут вот как раз даже уже моя недавно начатая программа может проилюстрировать ... вот посмотри, что такое четырехугольник... и что можно с 4 длинами сделать, можешь преподу показать наглядность
0
|
0 / 0 / 0
Регистрация: 17.11.2018
Сообщений: 6
|
|
03.04.2019, 21:57 [ТС] | 5 |
Писал на паре, ничего не сохранял. Я просто сравнивал каждую сторону с суммой трех оставшихся.
0
|
416 / 145 / 27
Регистрация: 04.08.2018
Сообщений: 610
|
|
03.04.2019, 22:30 | 6 |
0
|
03.04.2019, 22:47 | 7 |
и что это даст?
ну пусть у нас будет 2 3 4 5 длины сторон, что из этого можно сделать? Я ничего не могу сделать)) потому что тут бесконечное количество прямых/ треугольников/ четырехугольников, если длины могли бы быть нулями то еще и точку можно описать этими длинами, надо либо углы еще, либо пару точек, сейчас у нас 4 уравнения можно составить с 8 неизвестными, система решения не имеет на данный момент как-бэ
0
|
0 / 0 / 0
Регистрация: 17.11.2018
Сообщений: 6
|
|
03.04.2019, 22:53 [ТС] | 8 |
Ладно,спасибо.
0
|
416 / 145 / 27
Регистрация: 04.08.2018
Сообщений: 610
|
|
04.04.2019, 01:42 | 9 |
Это даст ответ на вопрос:
Разве? По-моему, система имеет бесконечное количество решений. Рисуем любое возможное решение - это не противоречит условию задачи.
0
|
04.04.2019, 09:42 | 10 |
я хочу наглядное решение сего видеть, взаимосвязь как минимум
однозначного решения... ну написано же при этом отсеивайте точки/ прямые /треугольники из возможного решения... НО при этом учитывая, что длины сторон изменяться не могут ни коим образом, т.е. берем одну линию, к ней присандаливаем вторую, под произвольным углом, далее ко второй третью, снова под произвольным углом, далее надо запаковать четвертую так, чтобы начало первой линии и конец третьей линии оказались на расстоянии друг от друга в длину четвертой линии, решить можно только методом подгона, числовым методом решения, схождение в некой дельте. Приветствую Вас, мы пришли в тему "Инверсная кинематика"
0
|
416 / 145 / 27
Регистрация: 04.08.2018
Сообщений: 610
|
|
04.04.2019, 15:17 | 11 |
Arcor, я решил без всякой "Инверсной кинематики". Найден один недочёт - нельзя построить квадрат, т.к. одна сторона обязательно должна быть длиннее других.
Я не программист, поэтому сделал в моём любимом мадкаде. Формулы простые, перевести в ЯП тривиально. Идея в следующем: Мы будем всегда строить четырёхугольник, у которого две стороны параллельны. Для нахождения углов я воспользовался теоремой косинусов. Треугольник строю из трапеции уменьшением нижней длиннейшей стороны на величину верхней стороны, которая должна быть не больше минимальной из a,b,c,d. Нижнюю сторону после уменьшения я назвал dd. И строю треугольник "b,c,dd". Для нахождения левого угла bdd между b и dd применяю теорему косинусов. Дальше для нахождения координат из длин и углов я использую тривиальные формулы. Получаю bx, by. Координаты линии c так же тривиально находятся из b. Обратно "горизонтально растягиваю" треугольник в трапецию и нахожу координаты линии a. Т.о. нижняя линия d самая длинная из всех, верхняя линия - a не меньше самой короткой, слева линия b, справа - c. Не сортирую заданные длины, это тоже тривиально.
0
|
04.04.2019, 15:42 | 12 |
я и говорил, что нету одного очевидного ответа, есть бесконечное множество решений, вы взяли что-то одно и начали плястаь оттуда, таким же успехом можно было бы придумать и точки, расположенные попарно на растоянии соответствующим длинам. затем например параллельным переносом переность, "зацепляя" их друг за дружку.
в вашем алгоритме, каким способом мы будем брать две линии которые обязаны быть параллельны, вы привели 4 картинки с индивидуальными длинами, покажите как построить из 4 длин разные варианты, комбинируя линии по разному алгоритм интреесный все же
0
|
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
|
||||||
04.04.2019, 16:08 | 13 | |||||
Или такой алгоритм. Программу конечно нужно довести до ума.
1
|
416 / 145 / 27
Регистрация: 04.08.2018
Сообщений: 610
|
|
04.04.2019, 16:42 | 14 |
Эти линии выбираются по длине. Самая длинная и самая короткая всегда будут параллельны. Самая короткая не обязательно должна быть короче всех остальных, может быть равной.
Ды вот нельзя комбинировать. Входные данные должны сортироваться и форма четырёхугольника будет типичной. В задании не вижу строгого следования линий, т.е. можно строить линии в любом порядке. Я выбрал порядок самая длинная, средняя, самая короткая, средняя. В другом порядке нельзя построить по моему алгоритму. Не по теме: С версии 13 для меня он Mad :)
0
|
04.04.2019, 17:57 | 15 |
Я вот что начал сейчас на работе перед уходом уже. уже бежать надо домой.. ээхх не доделал чуть
я со своей кинематикой)))) идея: берем теорему косинусов берем 3 первых длины, сравниваем длины, если сумма двух больше или равно третьей - то возможно строить треульник вырешиваем альфу выбираем произвольную бетту, чтобы построить первую линию, синус/косинус для высчитывания конечных точек первой линии имя бетту + полученныую альфу, строим вторую линию, конечная точка снова синус/косинус от альфы + бетта построили 2 линии уже!!! берем в расчет С, Д и С' снова по теореме косинусов решаем гамму, так как длина С у нас осталась, крутим ее вокруг на угол гамма + тот угол, что был у С до этого и вуаля мы построили четырехугольник, кинематическая модель которого останется неизменной для любых изменений углов в чем моя загвоздка вышла сейчас и я не успел решить это на работе - надо правильно распознать ситуацию, когда к полученному углу надо + 180, а когда не надо вообще я пошел домой, может быть вечером открою снова и попробую решить
0
|
416 / 145 / 27
Регистрация: 04.08.2018
Сообщений: 610
|
|
04.04.2019, 18:37 | 16 |
Спасибо, потырил сортировку и может что-то ещё.
Сделал свой алгоритм, вроде работает. Разве что хотел сделать выполнение процедуры при показе формы, чтобы при старте программы уже было нарисовано. Добавляю процедуру в onShow формы, но не работает. Добавлял в другие события, но ничего не заработало. Чтобы отрисовало надо или сменить значение, масштаб или кликнуть на форму(или на PaintBox). Забыл добавить проверку на квадрат и отлов исключительных ситуаций!
0
|
416 / 145 / 27
Регистрация: 04.08.2018
Сообщений: 610
|
|
04.04.2019, 19:38 | 17 |
Arcor, а вам нужно математически красивое решение или построить четырёхугольник? Если только последнее, то вы не думали про итерационный метод? Строите квадрат на основе первой стороны. Затем сравниваете вторую заданную сторону со второй стороной квадрата. Если не равны, то равняете. Сложность тут в том, что придётся равнять одну сторону и два угла. Придётся хитро разбивать на треугольники и по той же теореме косинусов считать новые углы. Это наркомания, конечно, но при современных вычислительных мощностях почему бы и нет?
0
|
04.04.2019, 19:47 | 18 |
и об этом я писал жеж выше...
потому мне и нравится метод "инверсной кинематики"(тут только малая часть этого значения), это элегантное геометрическое решение
Добавлено через 3 минуты на картинке ошибка.. там - 2АВ, а не -2АС
0
|
416 / 145 / 27
Регистрация: 04.08.2018
Сообщений: 610
|
|
04.04.2019, 20:03 | 19 |
Пардон, я не внимательно читал этот абзац. После фразы
я перестал понимать. В алгоритме не может быть произвольного угла, я не понял и дочитал по диагонали.
0
|
04.04.2019, 21:43 | 20 |
мой алгоритм выше был слегка не верный, вот что я хотел в конце концов сделать
по первой картинке 1 - берем 4 произвольные длины(A, B, C, D), заведомо из которых можно соорудить треугольник 2 - берем вспомогательную длину Q, любой длины, но тже при условии, что с ней можно построить треугольник 3 - по теореме косинусов вырешиваем углы 1 - 6, использовать будем 1, 2 и 6; 3, 4 и 5 для проверки или построения с другого "края" 4 - по углу 1 строим первую линию, длиной А 5 - по углу 2 строим вторую линию, длиной B 6 - по углу 6 строим третью линию, длиной С 7 - линия D строится автоматически, так как она тоже учавствовала при решении теоремы косинусов, так что все взаимосвязано!!! по сути тут только одна проищвольная величина выбирается, это длина Q, можно сделать и стартовый угол еще, чтобы задавать, но я просто взял из получившегося треугольника автоматом сгенерированную из трех длин, A, B и Q. той же теоремой косинусов далее просто от балды куча разных длин и в итоге идет замер реальной длины, решилось ли все верно или нет, слева в логе можно видеть углы и длины после проверки, на картинке начатая прога-фреймворк для 2D CAD, просто там уже есть много инструментов для удобной работы с геометрией)) не стал канвасом баловаться.. осталась самая малость сделать распознавание правильного угла, чем я в своем фреймворке и займусь, эта тема толкнула нановые мысли и я делал в первую очередь это задание для себя самого)
0
|
04.04.2019, 21:43 | |
04.04.2019, 21:43 | |
Помогаю со студенческими работами здесь
20
Определить, можно ли построить треугольник с заданными сторонами Определить, можно ли построить треугольник с заданными сторонами Выяснить, можно ли построить треугольники с заданными сторонами Выяснить, можно ли построить треугольник с заданными сторонами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Блоги программистов | |||||
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
|
Модель полного двоичного суматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list):
s=^y]
p=x and y
for i in range(1,len(x)):
s. append((x^y)^p)
p=(x and y)or(p and (x or y))
return s
x=list()
y=list()
|
Это мы не проходили, это нам не задавали...(шестибитный асихронный счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
|
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
|
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения
PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
|
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
|
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
|
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9
Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
|
Инструкция по установке python3.13.1 в Debian 12
AlexSky-coder 03.01.2025
sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev
wget. . .
|
Затестил триггеры. архив проекта прилагаю с GOA файлами в настройках архиватора проектов.
Hrethgir 03.01.2025
В этот раз нет закольцованности, потому что от неё только глюки, как я понял, логика не вырезанная. Триггеры очень быстрые если верить измерениям с помощью анализатора от Gowin.
Есть ещё регистры,. . .
|
Python в помощь DevOps
IT_Exp 03.01.2025
Причины использования Python в работе DevOps
Python стал неотъемлемой частью мира DevOps, и это не случайно. Этот язык программирования обладает множеством преимуществ, которые делают его. . .
|
Angular vs React vs Vue.js
BasicMan 03.01.2025
О, друзья-разработчики и просто любопытные читатели! Сегодня мы отправимся в увлекательное путешествие по миру фронтенд-разработки, и первой остановкой станет Angular – этакий строгий немецкий. . .
|