Главная страница
    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
15-1221297971
@!!ex
2008-09-13 13:26
2008.11.09
День программиста - Набор стереотипов


6-1195190006
Сергей Колесник
2007-11-16 08:13
2008.11.09
Пример работы с WinPCap на дельфях


2-1222669916
vegarulez
2008-09-29 10:31
2008.11.09
вопрос про поток.


15-1221537289
Slider007
2008-09-16 07:54
2008.11.09
С днем рождения ! 16 сентября 2008 вторник


15-1221319545
Городской Шаман
2008-09-13 19:25
2008.11.09
Starforce это троян?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский