Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2009, 10:34   #1
Rio309
Форумчанин
 
Регистрация: 06.02.2008
Сообщений: 140
По умолчанию Создание арок

Надо создать процедуру аналогичную Arc()
Среда программирования Делфи.
Мой код:

Строит по двум точкам и градусам, но при попытке вращения всей детали, отображается не правильно.
Код:
procedure ArcXY(x1,x2,y1,y2:integer; phi1,phi2:real);
var i,midx,midy,radius,centerx,centery:real;
begin
i:=Phi1;
radius:=sqrt(sqr(x2-x1)+sqr(y2-y1))/2;

centerx:=(x2-x1)/2+x1;
centery:=(y2-y1)/2+y1;


with form1 do
  begin
  midx:=paintbox1.Width/2;
  midy:=paintbox1.height/2;
    paintbox1.canvas.moveto(round(centerx+radius*sin(i)), round(centery+radius*cos(i)));
    while i<=phi2 do
      begin
      paintbox1.canvas.lineto(round(centerx+radius*sin(i)), round(centery+radius*cos(i)));
      i:=i+0.01;
      end;
      paintbox1.Canvas.Pen.Style:=psDashDot;
      paintbox1.Canvas.pen.Width:=1;
      paintbox1.canvas.moveto(round(centerx), round(centery));
      paintbox1.canvas.lineto(round(centerx+radius*sin((phi2+phi1)/2)), round(centery+radius*cos((phi2+phi1)/2)));
      paintbox1.Canvas.Pen.Style:=psSolid;
      paintbox1.Canvas.pen.Width:=3;
  end;
end;
Rio309 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание компилятора Crivel Софт 7 23.01.2010 18:29
Создание компонента Neobrat Компоненты Delphi 3 01.05.2009 09:52
Создание макросов Женечка2607 Microsoft Office Excel 3 23.04.2009 21:17
Создание 3 базы из 2-х bosston БД в Delphi 14 23.04.2009 09:28
Создание надстроек Jarik Microsoft Office Excel 7 22.04.2009 19:41