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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2012, 18:29   #1
Mazahacka1
 
Регистрация: 21.05.2012
Сообщений: 6
По умолчанию

Координаты точек обращены на угол фи подсчитывает. Проблема соединить их, выдает ошибку. Помогите, буду очень благодарен.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, CheckLst, Spin;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    ListBox1: TListBox;
    ListBox2: TListBox;
    SpinEdit1: TSpinEdit;
    Button1: TButton;
    procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Button1Click(Sender: TObject);
  
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  x1,y1,sx,sy,n:integer;
  xa: array [1..100 ]of integer;
 ya: array [1..100 ]of integer;





implementation

{$R *.dfm}

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);


begin




if (button=mbright) then
    begin
     canvas.MoveTo(x,y);
     x1:=x;
     y1:=y;
listbox1.Items.Add(IntToStr(x));
listbox2.Items.Add(IntToStr(y));

  end;
if (ssShift in Shift) then
   begin
      canvas.LineTo(x,y);
      listbox1.Items.Add(IntToStr(x));
      listbox2.Items.Add(IntToStr(y));
    end;

 sx:= StrToInt(listbox1.Items[0]);
 sy:= StrToInt(listbox2.Items[0]);

    if (((x>(sx-10))and (x<(sx+10)))and((y<(sy+10))and (y>(sy-10)))) then
    begin

 canvas.LineTo(sx,sy);

end;
end;






procedure TForm1.Button1Click(Sender: TObject);
var i,a,TempX,TempY:integer;
an:real;
p: array of TPoint;
begin
a:=spinedit1.Value;
An:=(a+180)*(3.14/180);

n:=listbox1.Count;
for i:=1 to n  do
begin
xa[i]:= StrToInt(listbox1.Items[i-1]);
ya[i]:= StrToInt(listbox2.Items[i-1]);

TempX:=xa[1]-xa[i];
TempY :=ya[1]-ya[i];
p[i].X:=Trunc( Cos( An) * TempX - Sin( An) * TempY );
p[i].Y:=Trunc( Sin( An) * TempX + Cos( An) * TempY );

 form1.Canvas.Polygon(p);
end;



end;

end.
что никто не знает?

Последний раз редактировалось Stilet; 21.05.2012 в 22:23.
Mazahacka1 вне форума Ответить с цитированием
Старый 21.05.2012, 21:33   #2
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию

Цитата:
Сообщение от Mazahacka1 Посмотреть сообщение
что никто не знает?
просто погода хорошая - все отдыхают!
http://netsoftware.ucoz.ru/load/pros...delphi/1-1-0-7

мой не большой примерчик
будут вопросы задавай (но только в аське и завтра сутра)
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype
denisbrain вне форума Ответить с цитированием
Старый 22.05.2012, 14:22   #3
Mazahacka1
 
Регистрация: 21.05.2012
Сообщений: 6
По умолчанию

посмотрите пожалуйста
Вложения
Тип файла: rar smpnorm.rar (176.6 Кб, 10 просмотров)
Mazahacka1 вне форума Ответить с цитированием
Старый 22.05.2012, 14:36   #4
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

А можно описать проблему пошире для тех, у кого на работе нету Делфи?
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 22.05.2012, 16:05   #5
Mazahacka1
 
Регистрация: 21.05.2012
Сообщений: 6
По умолчанию

нажимая F9 компилятор ничего против запускается программа вводим данные, нажимая на кнопку выбивает системная ошибка и компилятор пишет и пишет ''Variable 'p' might not have been initialized.''

p[i].X:=Trunc( Cos( An) * TempX - Sin( An) * TempY );
p[i].Y:=Trunc( Sin( An) * TempX + Cos( An) * TempY );

form1.Canvas.Polygon(p); ошибка вот здесь гдето но я не знаю где
Mazahacka1 вне форума Ответить с цитированием
Старый 22.05.2012, 16:23   #6
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Без компилятора трудно понять в чём проблема.

Но разве это не динамический массив?

Код:
p: array of TPoint;
С ним нужно работать по особеному. Но для простого исправления достаточно написать так:

Код:
p: array [1..100] of TPoint;
Ошибка должна пропасть.

Цитата:
Variable 'p' might not have been initialized.
Это предупреждение, а не ошибка.
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 22.05.2012, 17:02   #7
Mazahacka1
 
Регистрация: 21.05.2012
Сообщений: 6
По умолчанию

так действительно предупреждения исчезло но ничего не происходит, должно рисовать фигуру по заданным координатам. Когда будете дома можете посмотреть, а то затра нужно сдать а программа не работает. буду очень благодарен
Mazahacka1 вне форума Ответить с цитированием
Старый 22.05.2012, 17:32   #8
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию

Цитата:
Сообщение от Mazahacka1 Посмотреть сообщение
так действительно предупреждения исчезло но ничего не происходит, должно рисовать фигуру по заданным координатам. Когда будете дома можете посмотреть, а то затра нужно сдать а программа не работает. буду очень благодарен

еще один пример
http://netsoftware.ucoz.ru/59_povorot_vokrug_tochki.zip
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype
denisbrain вне форума Ответить с цитированием
Старый 22.05.2012, 18:41   #9
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

У тебя в коде вообще лажа какаято. Что вообще за задание?
Судя по твоему коду юзер тыкает по форме и тем самым задаёт полигон. Но цент вращения тогда каким образов задаётся?
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 22.05.2012, 18:46   #10
Mazahacka1
 
Регистрация: 21.05.2012
Сообщений: 6
По умолчанию

да юзер тычет точки которые заносятся в listbox. координаты точки поворота 0 строчка в listbox 1 i listbox2. угол поворота заносится через SpinEdit1
Mazahacka1 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вращение камеры вокруг точки jetei Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 11.02.2012 12:48
Вращение камеры вокруг своей оси [OpenGL] russian-stalker Gamedev - cоздание игр: Unity, OpenGL, DirectX 4 14.04.2011 21:03
Вращение вокруг произвольно оси mens-evgenij Помощь студентам 3 21.03.2009 15:42
Mногоугольник, вращающийся вокруг заданной точки Sashka Помощь студентам 13 30.01.2008 17:15
Вращение луны вокруг Земли [LOL] Помощь студентам 4 19.06.2007 21:14