Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с масштабированием, ПЛИЗ!!! Помощь необходима срочная!!! 
V
    Опции темы
sabbatazh
Дата 7.10.2008, 01:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 17.7.2008

Репутация: нет
Всего: нет



Это продолжение темы про радар... я от решил сам смастерить подобное

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

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

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

п.с.
монитор 22" (а при уменьшении на мониторе 17" начинается фигня всякая, наплывают линии обна на другую).....))))))

я так понял нужно знание геометрии - я не селен в этом или чегото не понимаю.

полное масштабирование при изменении любого размера (по высоте и ширине)......

это мона увидить када сжать форму, мона выкинуть один имедж и варировать размерами оставшегося... просто начинаетсяполнная ерунда....

Спасибо !!!!

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  Temp2.rar 2,17 Kb
PM MAIL   Вверх
sabbatazh
Дата 7.10.2008, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 17.7.2008

Репутация: нет
Всего: нет



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

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

как правильно отбразить линию подкурсором чтобы она соответствовали углу наклона?!!
Пробывал, шот не выходит может чегото не хватает....

Код

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 - 7.10.2008, 19:58
PM MAIL   Вверх
sabbatazh
Дата 7.10.2008, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 17.7.2008

Репутация: нет
Всего: нет



основная проблема отрисовки полукруга под координатоми мыши!!!
PM MAIL   Вверх
sabbatazh
Дата 7.10.2008, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 17.7.2008

Репутация: нет
Всего: нет



от последняя версия процедуры отрисовки угла и растояния на сетке для прекрепленного файла к теме:
Код
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;


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

р.с. мммда перевод декартовых в полярные координаты у меня чет храмает........
PM MAIL   Вверх
sabbatazh
Дата 10.10.2008, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 17.7.2008

Репутация: нет
Всего: нет



"пасибо за понимание"  (((((((((
PM MAIL   Вверх
MetalFan
Дата 10.10.2008, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 62
Всего: 128



научись корректно задавать вопросы и писать без ошибок, и народ потянется  smile 


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
sabbatazh
Дата 11.10.2008, 01:07 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 17.7.2008

Репутация: нет
Всего: нет



MetalFan
 ну раз такой умный, что непонятно!!!!
PM MAIL   Вверх
sabbatazh
Дата 12.10.2008, 03:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 17.7.2008

Репутация: нет
Всего: нет



фсе СПРАВИЛСЯ, сам!!!!!!!

Кому нада обрасчайтесь.... 

получилось просто супер..... (как полноценный рада)!!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0713 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.