LINUX.ORG.RU

fabric js - Определить противоположные вершины, стороны или углы многоугольника

 ,


0

1

Возможно это простая задача. Но то-то не понимаю. И в сети почему-то нет списка решений

Пример многоугольника https://i.ibb.co/QXq2jjr/against-side-2021-12-05-13-04-29.png

Как видно не все так очевидно.

Есть все углы, коэффициенты наклонов сегментов.

Ну и как определить противоположные вершины, стороны или углы этого многоугольника ?


определи пожалуйста, что тебе нужно. Как вариант, обозначь на картинке.

anonymous
()
Ответ на: комментарий от anonymous

Определить какие из вершин или сторон или углов многоугольника в примере являются противоположными

Устроит любое решение для углов, сторон или вершин

mirek
() автор топика
Ответ на: комментарий от mirek

При наличии упорядоченного списка координат: если номер вершины меньше или равен n/2, то номер противоположной вершины i + n/2; если больше n/2, то номер противоположной вершины i - n/2. Не?

Очевидно,что число n должно быть чётным, так как, например, у треугольника сложно выделить противоположную вершину.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 1)
Ответ на: комментарий от mirek

Хорошо, спрашиваю на доступном уровне

Что такое «коэффициенты наклона»? Какие нахер «все углы»? Что ты имеешь, в каком виде представлены данные? Ты хотя бы смутно само понимаешь условия задачи и что требуется найти, животное?

anonymous
()
Ответ на: удаленный комментарий

Да Жаль. А так зато тебя тоже можно покрыть не проходимым толстым слоем )

Речь о евклидовом пространстве. Не поняли см. картинку

Но такие сложные многоугольники и все же на плоскости (Не 3D) не рассматривают в 7 классе

mirek
() автор топика
Ответ на: комментарий от mirek

На картинке многоугольник с 12-ю вершинами,я его видел. Ты в свою очередь даже не смог описать начальные условия. Если есть координаты всех вершин (как ты их получишь уже твоё дело), то нет ничего сложного по описанной формуле узнать номер противоположной вершины. Ты же в упорядоченной форме данные хранить собираешься?

grem ★★★★★
()
Ответ на: комментарий от mirek

А что, для шести и восьмиугольника условие задачи сильно поменяется? Сформулируй для начала, что именно у тебя дано и что ты хочешь получить.

grem ★★★★★
()
Ответ на: комментарий от grem

Ну тогда я не понял, что за n/2 и i в твоем решении ?

Очевидно, что раз этот многоугольник в js то известны 1, последняя вершина. Стороны идут по часовой стрелке. Есть координаты всех вершин Есть углы образующиеся смежными сторонами у вершин

mirek
() автор топика
Ответ на: комментарий от mirek

Но вообще сам номер вершины ни о чем не говорит

Допустим 10-я вершина И что? Надо решение для многоугольника вообще, а не для того, что на картинке

mirek
() автор топика
Ответ на: комментарий от mirek

Ну тогда я не понял, что за n/2 и i в твоем решении ?

Это неважно, зато все уже поняли, что ты долбоеб!

anonymous
()
Ответ на: комментарий от grem

Но вообще сам номер вершины ни о чем не говорит

Допустим 10-я вершина И что? Надо решение для многоугольника вообще, а не для того, что на картинке

То есть в js 10-я вершина просто данные в массиве координат

Например 9-я вершина 120, 240 и 10-я 130, 235

Но координаты никак не связаны с порядковым номером вершины

mirek
() автор топика
Ответ на: комментарий от mirek

Допустим, 10-я, то противоположная, если можно так считать, для 12-тиугольника - (10 - 12/2) = 4-я вершина. Между противоположными вершинами одинаковое число вершин при обходе в любую сторону (если так считать). Может ты за противоположную вообще хочешь взять наиболее близкую к какой-нибудь нормали. Кто тебя знает, что ты ей называешь.

Очевидно, что раз этот многоугольник в js то …

Не очевидно.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 1)
Ответ на: комментарий от mirek

Определить какие из вершин или сторон или углов многоугольника в примере являются противоположными

Устроит любое решение для углов, сторон или вершин

Ну так проводишь прямую из точки через центр многоугольника. Находишь пересечение этой прямой с многоугольником с противоположной стороны. Идёшь от точки пересечения в одну сторону и в другую до ближайшей точки. Какая ближе – та и противоположней. Всё. Геометрия для самых маленьких.

anonymous
()
Ответ на: комментарий от mirek

Ну тогда я не понял, что за n/2 и i в твоем решении ?

Очевидно, что раз этот многоугольник в js то известны 1, последняя вершина. Стороны идут по часовой стрелке. Есть координаты всех вершин Есть углы образующиеся смежными сторонами у вершин

Это n/2 покатит только если у него все стороны и углы равны, многоугольник выпуклый.

anonymous
()
Ответ на: комментарий от grem

Допустим, 10-я, то противоположная, если можно так считать, для 12-тиугольника - (10 - 12/2) = 4-я вершина. Между противоположными вершинами одинаковое число вершин при обходе в любую сторону (если так считать). Может ты за противоположную вообще хочешь взять наиболее близкую к какой-нибудь нормали. Кто тебя знает, что ты ей называешь.

Да, Вы абсолютно правы, сэр, для грани нормаль нужно строить. А для вершины хер пойми. Бисектрису проводить наверное. Угла.

anonymous
()

В общем, мы тут с профессорами пообщались и вот что я думаю.

Для нахождения противоположной грани порядок таков

  1. Построение нормали к грани.
  2. Нахождение пересечений граней многоугольника с этой нормалью.
  3. Дальше сами.

Для вершины нормаль заменяется на биссектрису. Всё.

Profit!

Добро пожаловать в школу юных линуксоидов-графониеведов!

anonymous
()
Ответ на: комментарий от anonymous

Нужно. Но надо сначала разобраться, что сам ТС то хочет. Пока он не определился с тем, что он не называет противоположной вершиной. Задачу он пока не сформулировал. Так что можно проводить хоть нормаль к плоскости многоугольника - пока не придумал зачем.

grem ★★★★★
()
Ответ на: комментарий от grem

Не очевидно.

Ну там еще fabric js написано )

В fabric в обьекте polygon так и хранится массив точек

см. описание http://fabricjs.com/docs/fabric.Polygon.html

Между противоположными вершинами одинаковое число вершин

Нет Это справедливо только для правильного многоугольника И выпуклого )

mirek
() автор топика
Последнее исправление: mirek (всего исправлений: 1)
Ответ на: комментарий от anonymous

ТС хочет быдлокодить на джаваскрипте и казаться умным. Первое достижимо.

Второе тоже. Нужно цилиндрическую шляпу с квадратной штукой сверху и висюлькой. Высоко задрать нос. Говорить сложно. Чуть что срываться на обвинение в некомпетенции.

anonymous
()
Ответ на: комментарий от mirek

Нет Это справедливо только для правильного многоугольника И выпуклого )

А сам-то ты там случайно не правильный в выпуклый?

anonymous
()
Ответ на: комментарий от anonymous

прямую из точки через центр многоугольника

А где центр ? Показываю еще одну картинку

https://i.ibb.co/RvGSTHd/against-sides2-2021-12-05-15-04-09.png

Сразу добавлю, что можно искать центр тяжести )

Что-то мне подсказывает, что это не тот путь…

mirek
() автор топика
Ответ на: комментарий от mirek

Она сформулирована. Просто речь не о правильном и не о выпуклом многоугольнике

где? До сих пор не понятно, что имеется в виду под противоположной углу стороне.

anonymous
()
Ответ на: комментарий от anonymous

Говорить сложно.

вот здесь он и погорит.

anonymous
()
Ответ на: комментарий от anonymous

где? До сих пор не понятно, что имеется в виду под противоположной углу стороне.

Наверное речь о биссектри́се, которая пересечет какую-то прямую?

anonymous
()
Ответ на: комментарий от anonymous

где? До сих пор не понятно, что имеется в виду под противоположной углу стороне.

Наверное речь о биссектри́се, которая пересечет какую-то прямую?

наверное можно кучу вариантов напридумывать. Равноправных. Поэтому от этого чуда уже весь тред добиваются постановки задачи. Или чтобы хотя бы пример был с обозначенным решением.

anonymous
()
Ответ на: комментарий от grem

надо сначала разобраться, что сам ТС то хочет. Пока он не определился с тем, что он не называет противоположной вершиной

Вершина которая на противоположной стороне

В данной задаче вероятно нельзя достигнуть строгой противоположности сторон

Противоположные стороны параллельны 7 класс )

Так что речь о приблизительной противоположности

Это значит вершина образованная после полного оборота векторов сторон многоугольника )

mirek
() автор топика
Последнее исправление: mirek (всего исправлений: 1)
Ответ на: комментарий от mirek

Это значит вершина образованная после полного оборота векторов сторон многоугольника )

Бухой?

anonymous
()
Ответ на: комментарий от anonymous

Бухой?

А может для начала все 11 классов надо было окончить ? )

mirek
() автор топика
Ответ на: комментарий от mirek

Это значит вершина образованная после полного оборота векторов сторон многоугольника )

После полного оборота вершины будут на прежних местах …

anonymous
()
Ответ на: комментарий от anonymous

С учетом расстояний сегментов не будут

mirek
() автор топика
Ответ на: комментарий от anonymous

Хотел сначала помочь этому кадру, но, видимо, не судьба: не в коня корм.

anonymous
()
Ответ на: комментарий от mirek

Вершина которая на противоположной стороне В данной задаче вероятно нельзя достигнуть строгой противоположности сторон Противоположные стороны параллельны 7 класс ) Так что речь о приблизительной противоположности Это значит вершина образованная после полного оборота векторов сторон многоугольника )

за такое ТЗ обычно берут втройне. С гарантией невозврата, если клиент недоволен.

anonymous
()

Ну и как определить противоположные вершины, стороны или углы этого многоугольника ?

Судя по по приведенному вами многоугольнику и как-то там догадываясь что вы хотите определить, все стороны многоугольника являются противоположными, кроме левой и правой стороны, выходящих через вершину …

anonymous
()
Ответ на: комментарий от anonymous

Судя по по приведенному вами многоугольнику и как-то там догадываясь что вы хотите определить, все стороны многоугольника являются противоположными, кроме левой и правой стороны, выходящих через вершину …

Читайте определения выпуклых и вогнутых многоугольников …

anonymous
()

Ну и как определить противоположные вершины, стороны или углы этого многоугольника ?

Возьмите левую прямую от вершины и вращайте ее до совпадения с правой прямой и вы все поймете …

anonymous
()
Ответ на: комментарий от mirek

Вершина которая на противоположной стороне

Что ты считаешь вершиной на противоположной стороне?

grem ★★★★★
()
Ответ на: комментарий от anonymous

бухой проспится, дурак - никогда. народная мудрость.

anonymous
()
Ответ на: комментарий от mirek

А где центр ? Показываю еще одну картинку

https://i.ibb.co/RvGSTHd/against-sides2-2021-12-05-15-04-09.png

Если тебе нужно противоположную относительно центра – ищи центр. Если напротив – строй нормаль (так же известную как перепендикуляр). Суть не меняется.

anonymous
()
Ответ на: комментарий от mirek

Она сформулирована. Просто речь не о правильном и не о выпуклом многоугольнике

Это ты выпуклый.

Многоугольник.

anonymous
()
Ответ на: комментарий от mirek

Не обращай внимания на агрессивность, это же лор. Но просто так даже тут не агрятся. У тебя задача действительно нечетко поставлена. Если исходить, что противоположные вершины, это вершины, которые лежат в другой полуплоскости, полученной разбиением плоскости радиусом, перпендикулярным радиусу к текущей вершиные, то нужно просто определить нормаль к текущему радиусу и если вершина по другую сторону - то она противоположная. Но это пальцем в небо, что тебе надо.

anonymous
()
Ответ на: комментарий от anonymous

Но просто так даже тут не агрятся.

А то что он всех в 11-й класс отсылает это нормально? …

anonymous
()
Ответ на: комментарий от anonymous

легче будет задавать наводящие вопросы

но зачем? зачем помогать быдлу? зачем миру и лично тебе нужно еще одно быдло с джаваскриптом?

anonymous
()
Ответ на: комментарий от anonymous

но зачем? зачем помогать быдлу? зачем миру и лично тебе нужно еще одно быдло с джаваскриптом?

Я думаю, что этот школьник просто боится выставить себя незнающим геометрию, а мамка говорила, что это плохо. Вот он подсознательно и старается любой ценой избежать «позора».

А Вы сразу – «быдло», «быдло».

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.