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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2008, 20:45   #1
sabbatazh
Пользователь
 
Аватар для sabbatazh
 
Регистрация: 06.10.2008
Сообщений: 20
По умолчанию Помогите с масштабированием

Мне не доходит как сделать масштабирование при изменении размеров проекта.

Проэкт прилагаеться... фсе почти сделал но от только одно не могу сделать... (с геометрией проблемы в школе были )

И гляньте, плиз, есть ошибки?!!! (с меня причетается)

Спасибо !!!!
Вложения
Тип файла: rar Temp2.rar (2.2 Кб, 16 просмотров)
sabbatazh вне форума Ответить с цитированием
Старый 07.10.2008, 15:21   #2
sabbatazh
Пользователь
 
Аватар для sabbatazh
 
Регистрация: 06.10.2008
Сообщений: 20
По умолчанию

фсем пасибо сделал....

Но возник другой вопрос....

как правильно отбразить линию подкурсором чтобы она соответствовали углу наклона?!!
Пробывал, шот не выходит может чегото не хватает....
Код:
procedure TForm1.laPM(xM,yM: Integer; r1,r2: Integer; x0: Integer; y0: Integer; i1: TImage);
var
   x,y: Integer;
   i, k, ang,h: Real;
   x1,y1: Extended;
   //dx: Integer;
begin
  //dx:= 10;

    with i1.Canvas do begin
         Pen.Style:= psSolid;
         Pen.Color := clBlack;
         Pen.Width := 1;
    end;

  //if xM > yM then
   //k:= ArcSin(xM/(2*r1))
  //else
   k:= ArcTan2(yM-y0,xM-x0);
 //repeat
  //i:= 2*pi- (pi*k)/180;

    ang:= {360 -} -1*((180*k)/pi);//k->i

   if (ang < 90) and (ang > -90) then begin

           SinCos(k, y1, x1);//k->i

       x := x0 + Round(r1 * x1);
       y := y0 + Round(r2 * y1);

    //if i1.Width > i1.Height then
       x:= x*2- x0;
    //else
      // y:= y*2 -y0;

     if k = 0 then begin
        ang:= 0;
        i1.Canvas.Pen.Width := 2;
     end else
        i1.Canvas.Pen.Width := 1;

     i1.Canvas.MoveTo(x0,y0);
     i1.Canvas.LineTo(x,y);
     i1.Canvas.TextOut(x,y-13,FloatToStr(ang));

  i:= Round(xM- _hag);  // проблема!!!!!!!
      i1.Canvas.Arc(_x1+i,_y1+i,_x2-i,_y2-i,_x3,_y3,_x4,_y4);


   //     k := k+ dx;
 //until (k >= 10*dx);
   end
end;

Последний раз редактировалось sabbatazh; 07.10.2008 в 20:52.
sabbatazh вне форума Ответить с цитированием
Старый 07.10.2008, 18:24   #3
sabbatazh
Пользователь
 
Аватар для sabbatazh
 
Регистрация: 06.10.2008
Сообщений: 20
По умолчанию

ХЕЛП!!! Горит ПРОГА!!!! СРОЧНА НАДА, ПОМОГИТЕ!!!!
sabbatazh вне форума Ответить с цитированием
Старый 07.10.2008, 20:53   #4
sabbatazh
Пользователь
 
Аватар для sabbatazh
 
Регистрация: 06.10.2008
Сообщений: 20
По умолчанию

основная проблема отрисовки полукруга под координатоми мыши!!!
sabbatazh вне форума Ответить с цитированием
Старый 07.10.2008, 22:40   #5
sabbatazh
Пользователь
 
Аватар для sabbatazh
 
Регистрация: 06.10.2008
Сообщений: 20
По умолчанию я уже не знаю что делать!!!!!

от последняя версия процедуры отрисовки угла и растояния на сетке для прекрепленного файла к теме:
Код:
var
  Form1: TForm1;

    _xM, _yM, _hag : Integer;
    _x0,_x1,_x2,_x3,_x4: Integer;
    _y0,_y1,_y2,_y3,_y4: Integer;
  radx, rady : Integer;
  b: Boolean;
...
procedure TForm1.laPM(xM,yM: Integer; r1,r2: Integer; x0: Integer; y0: Integer; i1: TImage);
var
   x,y,i: Integer;
   k, ang,h: Real;
   x1,y1: Extended;
begin

    with i1.Canvas do begin
         Pen.Style:= psSolid;
         Pen.Color := clBlack;
         Pen.Width := 1;
    end;

   k:= ArcTan2(yM-y0,xM-x0);

    ang:= -1*((180*k)/pi);//k->i

   if (ang < 90) and (ang > -90) then begin

           SinCos(k, y1, x1);//k->i

       x := x0 + Round(r1 * x1);
       y := y0 + Round(r2 * y1);


       x:= x*2- x0;

     i1.Canvas.MoveTo(x0,y0);
     i1.Canvas.LineTo(x,y);
     i1.Canvas.TextOut(x,y-13,FloatToStr(ang));
//------------------------------------------------------------------------------
  x1:= 2*r1 + _hag;
  y1:= 2*r2 + _hag;


     if xM <= (x1/2)+ _hag then begin
      if yM <= (r2 + _hag) then
          i:= Round(yM- _hag +k)
      else
          i:= Round(y1 - yM - k);
     end else
          i:= Round( x1 - xM );


     if (_x2-i < x1) and (i <= y1) then begin
      i1.Canvas.Arc(_x1+i,_y1+i,_x2-i,_y2-i,_x3,_y3,_x4,_y4);

        Caption:= 'Mod = '+ IntToStr(r2-i) +'; Arg = '+ FloatToStr(ang);
     end;

   end
end;
здесь дето ошибка я не могу найти где, ПОМОГИТЕ найти!!!!

р.с. мммда перевод декартовых в полярные координаты у меня чет храмает........
sabbatazh вне форума Ответить с цитированием
Старый 10.10.2008, 13:54   #6
sabbatazh
Пользователь
 
Аватар для sabbatazh
 
Регистрация: 06.10.2008
Сообщений: 20
По умолчанию

"ПАСИБО, ПРОФЕСИОНАЛЫ"!!!!!!!!!!!!!(((
sabbatazh вне форума Ответить с цитированием
Старый 12.10.2008, 04:40   #7
sabbatazh
Пользователь
 
Аватар для sabbatazh
 
Регистрация: 06.10.2008
Сообщений: 20
По умолчанию

фсе вопрос решен.... ну.... и как закрыть тему.... чет я ничего не вижу....
sabbatazh вне форума Ответить с цитированием
Старый 12.10.2008, 04:47   #8
Viteef
stopfake.org
Участник клуба
 
Регистрация: 03.05.2007
Сообщений: 1,927
По умолчанию

Цитата:
У студентов не работает принтер, приходят, просят посмотреть. Мне влом идти, думаю может забудут. Совесть включается на 20й минуте, прихожу - они его уже настроили и всё печатает.
Через полгода студенты сами настраивают сеть, ставят винду, настраивают 1С...
off - top
Viteef вне форума Ответить с цитированием
Старый 13.10.2008, 16:10   #9
sabbatazh
Пользователь
 
Аватар для sabbatazh
 
Регистрация: 06.10.2008
Сообщений: 20
По умолчанию

ну ваще.... представляешь, тоже есть студенты.....
sabbatazh вне форума Ответить с цитированием
Старый 13.10.2008, 16:10   #10
sabbatazh
Пользователь
 
Аватар для sabbatazh
 
Регистрация: 06.10.2008
Сообщений: 20
По умолчанию

и для знатаков, делфи для меня ново...
sabbatazh вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
График в Canvas (с масштабированием) из StringGrid. PereCCC Помощь студентам 1 11.05.2008 10:45