1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

Проблема!

Тема в разделе "Общие вопросы", создана пользователем -, 3 июл 2003.

Модераторы: ZElena, Юрий Шагурин
  1. Guest

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

    имеется пайнтбокс,координаты 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. Guest

    1. это совсем не те форумы

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

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

Поделиться этой страницей