Название: Нарисовать арку полигонами Отправлено: li-frost от Июнь 06, 2011, 08:13 Прошу помощи по данному вопросу, у меня с геометрией что-то плоховат-то. Каким образом нарисовать арку полигонами, понимаю что-то должна быть формула по которой вычисляются точки полукруга, но как это сделать не пойму.
Название: Re: Нарисовать арку полигонами Отправлено: LisandreL от Июнь 06, 2011, 08:25 Что вы понимаете под аркой?
Название: Re: Нарисовать арку полигонами Отправлено: li-frost от Июнь 06, 2011, 08:29 мне нужно арочное окно нарисовать.
Арка - Полукруг — сегмент круга, вот так и понимаю. Название: Re: Нарисовать арку полигонами Отправлено: Igors от Июнь 06, 2011, 08:56 Код Писал прямо здесь, так что рихтуйте :) Название: Re: Нарисовать арку полигонами Отправлено: li-frost от Июнь 06, 2011, 08:59 СПАСИБО БОЛЬШОЕ!!! С этим я уже разберусь.
Название: Re: Нарисовать арку полигонами Отправлено: Igors от Июнь 06, 2011, 09:04 Чтоб легче разбираться: есть "параметрическое" уравнение фигуры - задаете угол, из него получаете x и у. Для круга
x = R * cos(angle); y = R * sin(angle); Для эллипса x = RX * cos(angle); y = RY * sin(angle); Название: Re: Нарисовать арку полигонами Отправлено: GreatSnake от Июнь 06, 2011, 09:45 Прошу помощи по данному вопросу, у меня с геометрией что-то плоховат-то. Каким образом нарисовать арку полигонами, понимаю что-то должна быть формула по которой вычисляются точки полукруга, но как это сделать не пойму. А зачем именно полигонами?Чем не устроил предназначенный именно для этого QPainterPath? Название: Re: Нарисовать арку полигонами Отправлено: li-frost от Июнь 06, 2011, 09:58 Так задумано. Я понимаю что можно и по другому, но мне нужно именно полигонами...
Название: Re: Нарисовать арку полигонами Отправлено: GreatSnake от Июнь 06, 2011, 10:01 Так задумано. Я понимаю что можно и по другому, но мне нужно именно полигонами... Код
Название: Re: Нарисовать арку полигонами Отправлено: li-frost от Июнь 06, 2011, 10:12 Так задумано. Я понимаю что можно и по другому, но мне нужно именно полигонами... Код
Название: Re: Нарисовать арку полигонами Отправлено: GreatSnake от Июнь 06, 2011, 10:15 Такого способа я не знаю Хм, странная реакция. А в чём сложности узнать ???Название: Re: Нарисовать арку полигонами Отправлено: Igors от Июнь 06, 2011, 10:49 Хм, странная реакция. А в чём сложности узнать ??? А зачем если это решается школьными синусом и косинусом? И весь код свой, а не чужой класс, и надо надеяться что он будет работать как надо. Кто его знает с каким шагом toFillPolygons "расквантует" дугу? И где взять QPainterPath (в смысле как заполнить)? Дешевле никак не выходит. И какова "себестоимость" крутого fill-вызова? Не на два ли порядка выше простенького своего кода? (в это знатоки классов обычно вдаваться не любят :))Все хорошо в меру, и знание Qt классов - тоже :) Название: Re: Нарисовать арку полигонами Отправлено: GreatSnake от Июнь 06, 2011, 10:58 Ну, моё дело предложить, а TC отказаться :)
Название: Re: Нарисовать арку полигонами Отправлено: li-frost от Июнь 06, 2011, 11:13 Хм, странная реакция. А в чём сложности узнать ??? А зачем если это решается школьными синусом и косинусом? И весь код свой, а не чужой класс, и надо надеяться что он будет работать как надо. Кто его знает с каким шагом toFillPolygons "расквантует" дугу? И где взять QPainterPath (в смысле как заполнить)? Дешевле никак не выходит. И какова "себестоимость" крутого fill-вызова? Не на два ли порядка выше простенького своего кода? (в это знатоки классов обычно вдаваться не любят :))Все хорошо в меру, и знание Qt классов - тоже :) Название: Re: Нарисовать арку полигонами Отправлено: Igors от Июнь 06, 2011, 11:30 Что-то у меня кроме треугольника ничего не выходит нарисовать (((, в чем может быть причина? Вероятно в нежелании разбираться и отлаживаться :)Название: Re: Нарисовать арку полигонами Отправлено: li-frost от Июнь 06, 2011, 11:42 Что-то у меня кроме треугольника ничего не выходит нарисовать (((, в чем может быть причина? Вероятно в нежелании разбираться и отлаживаться :)Название: Re: Нарисовать арку полигонами Отправлено: Igors от Июнь 06, 2011, 14:11 Эх.....если бы. Не хотел бы разобраться, не писал сроду сюда. Пишите конкретно, постите исходники, картинки результатов, печатайте полигоны в консоли. А с "ничего не выходит" рассчитывать на содержательный ответ не приходится.Возможно Вы попутали радианы с градусами - но я не телепат :) Название: Re: Нарисовать арку полигонами Отправлено: li-frost от Июнь 07, 2011, 07:08 Цитировать Возможно Вы попутали радианы с градусами - но я не телепат Да, на счет это вы правы, я задал вопрос в никуда.Вот код: Код: Arc::Arc(QGraphicsItem *parent) : QGraphicsPolygonItem(parent) Название: Re: Нарисовать арку полигонами Отправлено: Igors от Июнь 07, 2011, 10:58 QGraphicsPolygonItem - это всего 1(один) полигон, ну один и получаете. А у Вас массив (вектор) полигонов, поэтому Вам нужно наследоваться от QGraphicsItem и переопределять его методы (там несложно)
Название: Re: Нарисовать арку полигонами Отправлено: GreatSnake от Июнь 07, 2011, 11:04 QGraphicsPolygonItem - это всего 1(один) полигон, ну один и получаете. А у Вас массив (вектор) полигонов, поэтому Вам нужно наследоваться от QGraphicsItem и переопределять его методы (там несложно) А почему нельзя весь массив полигонов сконкатенировать в один?Название: Re: Нарисовать арку полигонами Отправлено: li-frost от Июнь 07, 2011, 11:06 Цитировать А почему нельзя весь массив полигонов сконкатенировать в один? Вот это интересно, а как это можно сделать?Название: Re: Нарисовать арку полигонами Отправлено: GreatSnake от Июнь 07, 2011, 11:13 Цитировать А почему нельзя весь массив полигонов сконкатенировать в один? Вот это интересно, а как это можно сделать?Название: Re: Нарисовать арку полигонами Отправлено: Igors от Июнь 07, 2011, 13:36 А почему нельзя весь массив полигонов сконкатенировать в один? Один полигон - вектор точек, образующих замкнутый контур. Если добавить точки одного полигона к другому - получится бессмысленное взаимо-пересекающееся месиво. По задаче нужно иметь отдельные полигоны - напр чтобы закрасить их разными цветами.Вот это интересно, а как это можно сделать? Унаследоваться от QGraphicsItem - всех делов 10 минут (2 метода перекрыть - нарисовать полигоны в цикле и сложить границы). А для GreatSnake вообще пара минут :). Это будет намного быстрее чем "обозначать интерес" в течение нескольких дней. Открывайте AssistantНазвание: Re: Нарисовать арку полигонами Отправлено: li-frost от Июнь 08, 2011, 08:47 Все, всем спасибо, я разобрался.
|