Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2008.11.09;
Скачать: [xml.tar.bz2];

Вниз

разделить окружность на равные доли   Найти похожие ветки 

 
Иванн   (2007-08-20 17:34) [0]

procedure DrawImage(Canvas: TCanvas; DestRect: TRect; ABitmap: TBitmap);
var
 Header, Bits: Pointer;
 HeaderSize: DWORD;
 BitsSize: DWORD;
begin
 GetDIBSizes(ABitmap.Handle, HeaderSize, BitsSize);
 Header := AllocMem(HeaderSize);
 Bits := AllocMem(BitsSize);
 try
   GetDIB(ABitmap.Handle, ABitmap.Palette, Header^, Bits^);
   StretchDIBits(Canvas.Handle, DestRect.Left, DestRect.Top,
     DestRect.Right, DestRect.Bottom,
     0, 0, ABitmap.Width, ABitmap.Height, Bits, TBitmapInfo(Header^),
     DIB_RGB_COLORS, SRCCOPY);
 finally
   FreeMem(Header, HeaderSize);
   FreeMem(Bits, BitsSize);
 end;
end;

procedure PrintImage(Image: TImage; ZoomPercent: Integer);
// if ZoomPercent=100, Image will be printed across the whole page
var
 relHeight, relWidth: integer;
begin
 Screen.Cursor := crHourglass;
 Printer.BeginDoc;
 with Image.Picture.Bitmap do
 begin
   if ((Width / Height) > (Printer.PageWidth / Printer.PageHeight)) then
   begin
     // Stretch Bitmap to width of PrinterPage
     relWidth := Printer.PageWidth;
     relHeight := MulDiv(Height, Printer.PageWidth, Width);
   end
   else
   begin
     // Stretch Bitmap to height of PrinterPage
     relWidth := MulDiv(Width, Printer.PageHeight, Height);
     relHeight := Printer.PageHeight;
   end;
   relWidth := Round(relWidth * ZoomPercent / 100);
   relHeight := Round(relHeight * ZoomPercent / 100);
   DrawImage(Printer.Canvas, Rect(0, 0, relWidth, relHeight),
     Image.Picture.Bitmap);
 end;
 Printer.EndDoc;
 Screen.cursor := crDefault;
end;

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
i:=strtoint(edit1.Text)*746 div 100;
image1.Height:=i;
image1.Width:=i;
image1.Canvas.Pen.Color := clwhite;
image1.Canvas.Ellipse(0, 0, oldr, oldr);

image1.Canvas.Brush.Style := bsClear;
image1.Canvas.Pen.Color := clblack;
   image1.Canvas.Ellipse(0, 0, i, i);
   oldr:=i;
end;

строю окружность
как мне эту окружность разделить на равные дольки, к примеру на 7 часей?


 
MBo ©   (2007-08-20 17:44) [1]

for i := 0 to 6 do
 Points[i] := Point(Round(CenterX + Radius*Cos(i*2*Pi/7)),Round(CenterY + Radius*Sin(i*2*Pi/7)));


 
ZMRaven ©   (2007-08-21 09:00) [2]

гептограмму решил нарисовать? Оо



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2008.11.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.004 c
2-1222673215
<Evil>
2008-09-29 11:26
2008.11.09
Как экранировать одинарную кавычку?


2-1222844654
FoxNew
2008-10-01 11:04
2008.11.09
Строка соединения ADOConnection для работы с SQL-Server-ом


2-1220340044
Wolferio
2008-09-02 11:20
2008.11.09
DownloadFile (Кеширует при повторном обновлении)


3-1209101225
дучф_ч
2008-04-25 09:27
2008.11.09
при удалении полей таблицы ее размер не уменьшается


2-1222610739
psp
2008-09-28 18:05
2008.11.09
Как подключить сервер Firebird 1.5. к Delpi 7?.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский