Название: Относительное расстояние до центра 8-угольника Отправлено: Igors от Январь 12, 2012, 19:32 Добрый день
На плоскости есть выпуклый 8-угольник с центром в точке (0, 0). Гарантируется что этот центр лежит внутри, но не более того. Найти относительное расстояние relD от центра до произвольно заданной точки p, напр p совпадает с центром, relD = 0 p снаружи, relD > 1 p на ребре, relD = 1 p внутри, relD = ??? Спасибо Название: Re: Относительное расстояние до центра 8-угольника Отправлено: Fat-Zer от Январь 12, 2012, 21:43 ничего не понял... что за "относительное расстояние"? да и вообще условие как-то бредово звучит...
дано: выпуклый 8-угольник, включающий (0,0); точка p; найти: расстояние от p до (0,0) [глупость какая-то(???)] [оффтоп] с пирамидой и конусом чего-нить вышло? Название: Re: Относительное расстояние до центра 8-угольника Отправлено: andrew.k от Январь 12, 2012, 21:53 Я не силен в математике, но попробую :)
1. Провести прямую из центра до точки которую рассчитываем. 2. Определить какую из граней пересекает прямая. Найти точку пересечения с ней. 3. Получаем два расстояния от центра до точки и от цетра до точки пересечения. Их отношение и будет относительное расстояния. Название: Re: Относительное расстояние до центра 8-угольника Отправлено: Igors от Январь 13, 2012, 00:33 ..условие как-то бредово звучит... Пример:радиальный градиент (цвет) для круга. В центре максимальная яркость которая плавно падает к краю, ну или наоборот. Так что, нельзя иметь градиент для чуть более сложной фигуры? Ну а если "нежелание понимать" - так я ж Вас обсуждать не заставляю :)[глупость какая-то(???)]... с пирамидой и конусом чего-нить вышло? Да, хотя в отдельных случаях погрешность значительна2. Определить какую из граней пересекает прямая. Найти точку пересечения с ней. Прошу исполнитьПантер, перенесли тему так перенесли, не вопрос. Но мне кажется нужно ширше понимать "2D графика", а не сводить дело только к хоровому чтению Ассистента (опиума для народа). Название: Re: Относительное расстояние до центра 8-угольника Отправлено: andrew.k от Январь 13, 2012, 01:18 2. Определить какую из граней пересекает прямая. Найти точку пересечения с ней. Прошу исполнитьВычислять по очереди каждую сторону. Будет два пересечения. На сколько я понимаю ровно два. Т.к. многоугольник выпуклый. Определить какой из двух отрезков искомый тоже не сложно. Вы такие сложные темы поднимаете, Игорс. Не пойму какие проблемы с нахождением точки пересечения прямых? Или это стеб надо мной?) Название: Re: Относительное расстояние до центра 8-угольника Отправлено: kambala от Январь 13, 2012, 04:32 вот это относительное расстояние - это число будет использоваться в какой-то формуле или это просто индикатор? если второе, то просто использовать перечисление: 0 - точка в центре, 1 - внутри, 2 - на ребре, 3 - за пределами.
Название: Re: Относительное расстояние до центра 8-угольника Отправлено: Пантер от Январь 13, 2012, 09:26 Igors, разве вопрос имеет какое-то отношение к Qt?
Название: Re: Относительное расстояние до центра 8-угольника Отправлено: Igors от Январь 13, 2012, 14:41 вот это относительное расстояние - это число будет использоваться в какой-то формуле.. ? Будет, причем весьма интенсивно, но об этом расскажу позже и в др. теме. Требуется float число.Igors, разве вопрос имеет какое-то отношение к Qt? Qt имеет классы для поддержки 2D графики (QPointF. QPolygon, QVector2D и др), так почему бы их не задействовать? Не спрашивать же каждый раз "как сделать это средствами Qt?" - это само собой подразумевается. Название: Re: Относительное расстояние до центра 8-угольника Отправлено: Пантер от Январь 13, 2012, 14:52 Qt имеет классы для поддержки 2D графики (QPointF. QPolygon, QVector2D и др), так почему бы их не задействовать? Не спрашивать же каждый раз "как сделать это средствами Qt?" - это само собой подразумевается. Все равно, к данному разделу эта тема имеет большее отношение.Название: Re: Относительное расстояние до центра 8-угольника Отправлено: kambala от Январь 13, 2012, 14:57 вот это относительное расстояние - это число будет использоваться в какой-то формуле.. ? Будет, причем весьма интенсивно, но об этом расскажу позже и в др. теме. Требуется float число.Название: Re: Относительное расстояние до центра 8-угольника Отправлено: Igors от Январь 13, 2012, 15:06 Все равно, к данному разделу эта тема имеет большее отношение. Ну на "алгоритм" это не тянет - очевидно что дело сводится к нахождению пересечений. А вот как это сделать покрасивше и чтобы скорость была приличной (кратность вызовов большая) - имеет смысл обсудить. вариант "отношение расстояния от центра до точки к расстоянию от центра до ребра, которое пересекает луч центр-точка" кажется очень даже подходящим и вычислительных сложностей собой не представляет. Это напоминает предыдущего докладчика у которого так же "все просто" - и так же отсутствуют хоть какие-то намеки на код (пусть даже "псевдо") :)Название: Re: Относительное расстояние до центра 8-угольника Отправлено: andrew.k от Январь 13, 2012, 15:17 намек на код (http://e-maxx.ru/algo/segments_intersection)
Название: Re: Относительное расстояние до центра 8-угольника Отправлено: Tonal от Январь 17, 2012, 08:53 2 маленбких дополнения к вашей многомудрой дискуссии:
1. Точка, относительно выпуклого многоугольника может: а. Лежать внутри. б. Совпадать с одной из вершин. в. Лежать на одной из граней. г. Лежать вне. Соответственно все эти случаи нужно рассматривать проводя отрезок соединяющий «центр» и точку. 2. Если p совпадает с центром, relD = 0 то очевидно, что при p внутри, 0 < relD < 1. :)p снаружи, relD > 1 p на ребре, relD = 1 p внутри, relD = ??? Ежели вспомнить Qt, то в классе QRegion есть метод contains который отвечает на вопрос внутри точка или снаруже. Но он не очень подходит для данного случая т. к. во первых неясно как трактует попадение на границу, а во вторых разработан для очень общих случаев и будет изрядно тормознее нормальных ручных вычислений. :) Название: Re: Относительное расстояние до центра 8-угольника Отправлено: Igors от Январь 17, 2012, 13:28 ..и будет изрядно тормознее нормальных ручных вычислений. :) Так что у нас с нормальными ручными вычислениями? :)Название: Re: Относительное расстояние до центра 8-угольника Отправлено: andrew.k от Январь 17, 2012, 18:45 ..и будет изрядно тормознее нормальных ручных вычислений. :) Так что у нас с нормальными ручными вычислениями? :)Название: Re: Относительное расстояние до центра 8-угольника Отправлено: Igors от Январь 17, 2012, 19:51 Задача еще не решена что ли? Нет, вот жду прынца (на белом коне) который мне решит :)Хотелось бы увидеть хорошую технику программирования - но, увы, пока только "воспоминания о будущем" (QRegion) + Ваш огрызок из гугла (который непонятно к чему). Название: Re: Относительное расстояние до центра 8-угольника Отправлено: Tonal от Январь 18, 2012, 10:31 Да лехко:
Код Надеюсь простейшие функции сам реализуеш. :) Название: Re: Относительное расстояние до центра 8-угольника Отправлено: Igors от Январь 19, 2012, 14:29 Надеюсь простейшие функции сам реализуеш. :) Та я даже не знаю на каком вражеском языке Вы все это написали :) Можно на "С", в крайнем случае на С++ ? СпасибоНазвание: Re: Относительное расстояние до центра 8-угольника Отправлено: Tonal от Январь 19, 2012, 15:45 Там жа сверху написано: Haskell.
Вроде всё вполне тривиально. Сложностей никаких не использовал, за ненадобностью. :) Но на С++ переводить - лениво. Слишком много кода получается. Так что сам тренируйся. :) Название: Re: Относительное расстояние до центра 8-угольника Отправлено: andrew.k от Январь 19, 2012, 16:05 Там жа сверху написано: Haskell. Уже ведь сказано было, что нужно на блюдечке)Вроде всё вполне тривиально. Сложностей никаких не использовал, за ненадобностью. :) Но на С++ переводить - лениво. Слишком много кода получается. Так что сам тренируйся. :) Название: Re: Относительное расстояние до центра 8-угольника Отправлено: Igors от Январь 19, 2012, 16:27 Там жа сверху написано: Haskell. То есть Вы считаете что для решения такой задачи необходимо привлекать специализированный язык (со всеми вытекающими)? Смело однакоНо на С++ переводить - лениво. Слишком много кода получается. А, ну понятно - эрудиту интересно изучать, но не делать :)Так что сам тренируйся. :) Уже ведь сказано было, что нужно на блюдечке) Ну а почему бы и нет? Qt классы у Вас есть, в чем загвоздка?Название: Re: Относительное расстояние до центра 8-угольника Отправлено: mutineer от Январь 19, 2012, 16:30 То есть Вы считаете что для решения такой задачи необходимо привлекать специализированный язык (со всеми вытекающими)? Смело однако Хаскель специализированный? На чем? Язык общего назначения же Название: Re: Относительное расстояние до центра 8-угольника Отправлено: Tonal от Январь 20, 2012, 11:43 На Haskell-е алгоритм выразился наиболее абстрактно, компактно и понятно.
А вот перевод в С/С++ - это уже довольно много не вполне очевидного кода. К тому же для оптимальности его ещё следует затачить/подогнать под окружение. Понятно, что всё это требует много времени и знания окружения. У меня нет ни первого ни второго. Да и интереса большого к этому нет. Так что пусть этим занимается тот, кому это зачем-то нужно. :) П. С. По поводу языков - ИМХО профессиональный программист должен уметь читать/понимать основные языки программирования разных направлений и большинство языков в основном для него направлении. П. П. С. По поводу классов Qt. Для подобных задачь лучше таки использовать специализированные библиотеки векторной графики, например AGG, или писать своё. У Qt несколько другие задачи, поэтому соответствующие классы, входящие в её состав заточены под её нужды и несколько тяжелы/неуклюжи в этой области. :) Название: Re: Относительное расстояние до центра 8-угольника Отправлено: Igors от Январь 20, 2012, 15:58 На Haskell-е алгоритм выразился наиболее абстрактно, компактно и понятно. Странно.. а у меня почему-то на простом С получилось заметно короче чем на козырном языке :). А вот перевод в С/С++ - это уже довольно много не вполне очевидного кода. А вообще Ваши посты прочитал с удовольствием. Заливаете Вы умело, творчески :) Название: Re: Относительное расстояние до центра 8-угольника Отправлено: Tonal от Январь 21, 2012, 09:11 Странно.. а у меня почему-то на простом С получилось заметно короче чем на козырном языке :). И чего ты тогда здесь плачишся и конючишь код, ежели уже написал? А, на счёт краткости - выкладывай - сравним. :) Название: Re: Относительное расстояние до центра 8-угольника Отправлено: Igors от Январь 21, 2012, 13:32 И чего ты тогда здесь плачишся и конючишь код, Неправда, я предложил обсудить как написать это место короче и с лучшей скоростью выполнения (см пост #10) А, на счёт краткости - выкладывай - сравним. :) Охотно выложу свой как только увижу хоть какой-то другой, а иначе "выборы из одного кандидата" :) Название: Re: Относительное расстояние до центра 8-угольника Отправлено: Tonal от Январь 23, 2012, 08:30 И чего ты тогда здесь плачишся и конючишь код, Неправда, я предложил обсудить как написать это место короче и с лучшей скоростью выполнения (см пост #10) После него есть твой, с предложением обсудить как это сделать, а после: Задача еще не решена что ли? Нет, вот жду прынца (на белом коне) который мне решит :)В следующем посте (http://www.prog.org.ru/index.php?topic=20586.msg141218#msg141218) ты всё ещё канючишь, или это уже «предложил обсудить...»? И только в предпоследнем сообщении (http://www.prog.org.ru/index.php?topic=20586.msg141372#msg141372) сознаёшся что код у тебя таки есть, но опять же никаких предложений обсудить «краткость и скорость» там нет. Есть они в следующем моём посте. «Мне кажется, кто-то врёт» © Сова. А, на счёт краткости - выкладывай - сравним. :) Охотно выложу свой как только увижу хоть какой-то другой, а иначе "выборы из одного кандидата" :) Так что выборы таки из 2х. Ты же утверждаешь (http://www.prog.org.ru/index.php?topic=20586.msg141372#msg141372) что «у меня почему-то на простом С получилось заметно короче». Вот давай и сравним размеры, а то опять какое-то голословное утверждение с твоей стороны. Так и репутацию троля получить не долго. :) Название: Re: Относительное расстояние до центра 8-угольника Отправлено: Igors от Январь 23, 2012, 09:33 Свой код я выложил. Ваш код за рамками обсуждения. Вовлекать в С++ проект др язык для решения задачи типа "лаба первокурсника" - это просто шутка, не более того. Так что выкладываем реализацию на С/C++ а не прячемся за огромный багаж знаний :)«Мне кажется, кто-то врёт» © Сова. Если © то наверное правильно "Сава" :)Название: Re: Относительное расстояние до центра 8-угольника Отправлено: Tonal от Январь 23, 2012, 11:19 Свой код я выложил. Ваш код за рамками обсуждения. Вовлекать в С++ проект др язык для решения задачи типа "лаба первокурсника" - это просто шутка, не более того. Так что выкладываем реализацию на С/C++ а не прячемся за огромный багаж знаний :)Кроме того, ты утверждал (http://www.prog.org.ru/index.php?topic=20586.msg141372#msg141372) что «у меня почему-то на простом С получилось заметно короче чем на козырном языке». Вот я и прошу код - посмотреть на сиё чудо. :) Иначе считаем утверждение голословными. Ну и к автору высказывания понятно какое отношение. :) «Мне кажется, кто-то врёт» © Сова. Если © то наверное правильно "Сава" :) |