Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

вывод текста не по прямой линии [D7, WinXP]


redlord ©   (2004-08-23 19:07:00) 

всем привет
народ подскажите как отобразить текст по кругу например как ка на печатях .где буква наклоняется при удалении от центра .


redlord   (2004-08-24 17:06:00) [1]

ок спаибо это то что надо


Profi   (2004-08-24 01:37:00) [2]

_student   (24.08.04 1:36) [7]
Ясно, машинописный шрифт был...


_student   (2004-08-24 01:36:00) [3]

Понял, понял. Поставль шрифт Times New Roman


Profi   (2004-08-24 01:34:00) [4]

_student   (24.08.04 1:30) [5]
Вообще, то сеть росположенно они по кругу, но все буквы вертикальны! Все модули подключал, ноль эффекта.


_student   (2004-08-24 01:30:00) [5]

У тебя буквы вообще не поворачиваются.

Посмотри модули

interface

uses
 SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
 Forms, Dialogs, ExtCtrls, StdCtrls, math;


Profi   (2004-08-24 01:19:00) [6]

_student   (24.08.04 1:16) [3]
Не а, по крайней мере у меня буквы располагались вертикально, а не под наклоном, как на печатях.


_student   (2004-08-24 01:16:00) [7]

У меня вроде как на круглых печатях


Profi   (2004-08-24 01:05:00) [8]

_student   (24.08.04 0:52) [1]
Если он хочет "как в печатях", то буквы должны быть тоже под наклоном!


_student   (2004-08-24 00:52:00) [9]


> где буква наклоняется при удалении от центра

Я эту мысл не совсем понял.

Но посмотри вот это может то что тебе надо

procedure CanvasSetAngle(C: TCanvas; A: Single);
var
 LogRec: TLOGFONT; {Font informationen}
begin
 GetObject(C.Font.Handle, SizeOf(LogRec), Addr(LogRec));
 LogRec.lfEscapement := Trunc(A);
 LogRec.lfOrientation := Trunc(A);
 C.Font.Handle := CreateFontIndirect(LogRec);
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
var
 A: single;
 str: string;
 i, x2, y2: integer;
begin
 str := 'Hello, Delphi Hello, Delphi Hello, Delphi';
 for i := 1 to length(str) do
 begin
   CanvasSetAngle(Canvas, -10.0 * (360 * (i / length(str))) - 90 * 10.0);
   x2 := 150 + round(100 * cos((360 * (i / length(str))) * pi / 180));
   y2 := 150 + round(100 * sin((360 * (i / length(str))) * pi / 180));
   Canvas.TextOut(x2, Y2, str[i]);

 end;

end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо