Render.ru

Проблема!

#1
Народ помогите

имеется пайнтбокс,координаты 2-ух точек
по которым рисуем палку и по таймер надо её крутить через матрицу поворота какаята фигня получается вот код


СПП

//---------------------------------------------------------------------------

#include <vcl.h>
#include <math.h>

#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
TForm1::p3d __fastcall TForm1::calculate(P3d pixel,double angel)
{
P3d t;
t.x=pixel.x*cos(angel)-pixel.y*sin(angel);
t.y=pixel.x*sin(angel)+pixel.y*cos(angel);
t.z=pixel.z;
return t;
}
//---------------------------------------------------------------------------


void __fastcall TForm1::FormCreate(TObject *Sender)
{
line[0].x=300;
line[0].y=300;
line[0].z=1;
line[1].x=350;
line[1].y=300;
line[1].z=1;
angel=0;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if (angel==360) {angel=0;} else angel+=1;
line[0]=calculate(line[0],angel);
line[1]=calculate(line[1],angel);
PaintBox1->Canvas->MoveTo(line[0].x,line[0].y);
PaintBox1->Canvas->LineTo(line[1].x,line[1].y);
}



а вот х

/---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TPaintBox *PaintBox1;
TTimer *Timer1;
TButton *Button1;
void __fastcall FormCreate(TObject *Sender);
void __fastcall Timer1Timer(TObject *Sender);

private: // User declarations
public: // User declarations
struct P3d
{
double x,y,z;
};
double angel;
P3d line[1];


__fastcall TForm1(TComponent* Owner);
P3d __fastcall calculate(P3d pixel,double angel);


};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif


подскажите в чём неправ а!?
очень надо

с уважением Аркан.
 
#2
1. это совсем не те форумы

2. аргументом sin и cos являются afaik радианы, а не градусы

3. даже если ты подправишь на радианы, в процедуре calculate х принимает отрицательные значения и вываливается за границы пайнтбокса
 
Сверху