Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.11.2010, 12:47
ilya21rus ilya21rus вне форума
Прохожий
 
Регистрация: 07.11.2010
Сообщения: 1
Репутация: 10
По умолчанию Овал декарта

не получается нарисовать овал декарта помгите пожалуйста 2 день мучаюсь

(x2+y2–2x)2–22(x2+y2)+1=0 если поможет
Код:
procedure TForm1.Button8Click(Sender: TObject);
var
r,theta,t,u,u1:integer;
a,tx,ty,x,g:single;
begin
r:=5;
canvas.Pen.Color:=clred;
for theta:=1 to 360 do
begin
g:=(theta*pi)/180;
tx:=r*sin(t)*cos(t)*cos(t);
ty:=r*cos(t)*sin(t)*sin(t);
//y=R*sin(t);
//x= R*cos(t);
u:=round(tx*10);
u1:=round(ty*10);
if theta=1 then canvas.MoveTo(u1+w2,u+h2)
else
canvas.LineTo(u+w2,u1+h2);

end;
end;
Ответить с цитированием
  #2  
Старый 07.11.2010, 13:34
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание

Код:
Procedure DrawCircle(CenterX, CenterY, Radius: Integer; Canvas: TCanvas; Color :TColor);

procedure PlotCircle(x, y, x1, y1: Integer);
begin
  Canvas.Pixels[x + x1, y + y1] := Color;
  Canvas.Pixels[x - x1, y + y1] := Color;
  Canvas.Pixels[x + x1, y - y1] := Color;
  Canvas.Pixels[x - x1, y - y1] := Color;
  Canvas.Pixels[x + y1, y + x1] := Color;
  Canvas.Pixels[x - y1, y + x1] := Color;
  Canvas.Pixels[x + y1, y - x1] := Color;
  Canvas.Pixels[x - y1, y - x1] := Color;
end; var
  x, y, r: Integer;
  x1, y1, p: Integer;
begin
  x := CenterX;
  y := CenterY;
  r := Radius;
  x1 := 0;
  y1 := r;
  p := 3 - 2 * r;
  while ( x1 < y1 ) do
  begin
    plotcircle (x, y, x1, y1) ;
    if (p < 0) then
      p := p + 4 * x1 + 6
    else
    begin
      p := p + 4 * ( x1 - y1 ) + 10 ;
      y1 := y1 - 1 ;
    end;
    x1 := x1 + 1 ;
  end;
  if (x1 = y1) then
    plotcircle( x, y, x1, y1) ;
end;

Код:
procedure TForm1.Button2Click(Sender: TObject);
begin        
DrawCircle(500, 500, 50, Canvas, clred); // х, у, радиус, канва, цвет
end;
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:08.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025