Вот симба не выводит текст под углом. Что делать ? Битмепы он тоже вращает только на 90 градусов..
У кого есть какие мысли ?
Вот симба не выводит текст под углом. Что делать ? Битмепы он тоже вращает только на 90 градусов..
У кого есть какие мысли ?
Векторные шрифты какие-нибудь прикрутить + матрицу поворота использовать ... Хотя это, конечно, суровое решение![]()
На счет текста не знаю.
По поводу битмап: AknIconUtils::SetSizeAndRotation(). Сам не пробовал, но согласно документации метод должен поворачивать битмапу на любой угол.
Regards,
ivey
Privet,
as I understand you want to rotate text? Well this is not possible in the Symbian. Images as I know could be rotated by CBitmapRotator but only 90, 180 and 270 angles are supported. With CAknIconUtils you might be able to do arbitrary angle.
Another possibility could be the OpenGL API... - but I have no experience with it.
BR,
STeN
Поворачивать должен, однако только если в качестве параметра передается CAknBitmap. Подозреваю, что только для SVG.
Произвольный битмап, например такой:
не поворачивает, к сожалению.Code:TDisplayMode displayMode = CEikonEnv::Static()->ScreenDevice()->DisplayMode(); CFbsBitmap* iOffScreenBitmap = new ( ELeave ) CFbsBitmap(); iOffScreenBitmap->Create( Rect().Size(), displayMode );
А для поворота SVG все достаточно очевидно - нужно пробежаться по XML и перемножить все координаты на матрицу поворота.
Ну я сделаю так.. Возьму отрисую на битмапе двухцветном шрифт.. Потом отсканирую, либо как-то надо получить доступ к битам этим, и просто повернуть эту матрицу на нужный угол. Давайте сделаем ? Я сегодня попробую сделать и отпишу , если получится. Выложу исходники функции поворота ;-)
Вообще обещаю, что сделаю это, иначе мне конец в универе ! Потом надо будет англичанам помочь, они тоже мудятся.
Я вообще это когда-то делалКод этот copyrighted поэтому поделиться, к сожалению, не могу. Но с поворотом там алгоритм не сложный, поэтому, думаю, проблем особых у вас не возникнет.
Для манипуляции битмапами рекоммендую воспользоваться классом TBitmapUtil.
Regards,
ivey
привет!
Надеюсь, что ты ходко одолеешь.
I think that the task dhould be easy. Just create the bitmap CFbsBitmap (check WIki how to do that), draw the requested text on it using its context CWindowGc and then use the AknIconUtils to rotate the result and draw it onto application surface.
BR
SteN
midday
Я недавно добавил в википедию статью об анимации:
http://wiki.forum.nokia.com/index.ph...86%D0%B8%D1%8F
исходный код этого примера: http://wiki.forum.nokia.com/index.ph...ExampleSrc.zip
Там как раз есть реализация матрицы поворота - класс CTransformMatrix. С его помощью производится вращение в трехмерном пространстве - пользуйтесьЕсли Ось Z не нужна - третью координату точек возьмите за 0, инкремент угла поворота по Z также сделайте равным 0.
stenlik
Class AknIconUtils rotate only CAknBitmap. So, if You create CFbsBitmap like this:
AknIconUtils do not rotate it.Code:TDisplayMode displayMode = CEikonEnv::Static()->ScreenDevice()->DisplayMode(); CFbsBitmap* iOffScreenBitmap = new ( ELeave ) CFbsBitmap(); iOffScreenBitmap->Create( Rect().Size(), displayMode );
Чет не получилось заюзать. Такое чувство, что ддл-ка не подключилась. ошибка при компилляции... такая же.. Undefined symbol и кракозябли всякие... Попробуйте кто, можнет у меня что- то не так ? Вроде всё подключил..
Undefined symbol: 'void AknIconUtils::RotateAndScaleBitmapL(class TRect const &, class CFbsBitmap *, class CFbsBitmap *, int) (?RotateAndScaleBitmapL@AknIconUtils@@SAXABVTRect@@PAVCFbsBitmap@@1H@Z)'[]
midday у вас какое SDK ?
Действительно, RotateAndScaleBitmapL не линкуется если собирать под Emulator Debug ... А вот если собирать под Phone Release то все нормально. Видимо отладочная aknicon.lib какая-то проблемная ... Пробовал собирать под S60_3rd_FP1.
А вот если использовать метод этого же класса SetSizeAndRotation то проблем с линковкой нет. Правда и поворота нет тоже.
У меня тоже S60_3rd_FP1. А под Phone Release поворачивает нормально?