Cyfrowy Baron napisał(a):Korzystasz ze środowiska C++Builder 6 Professional i masz tam FireMonkey?
Nie, testuję triala XE4 w oczekiwaniu na wersję XE5 z możliwością kompilacji na Androida. Cały czas nie kupuję XE5 pomimo zachęcającej promocji/update bo Embarcadero nie potrafi odpowiedzieć na pytanie KIEDY będzie taka wersja z Androidem Buildera. Poza tym zanim wydam te kilka tysięcy to chciałbym dokładnie poznać możliwości tego narzędzia - a jedyne co mnie interesuje to wieloplatformowość kodu z użyciem FireMonkey.
Ale to chyba taki off-topic?
Cyfrowy Baron napisał(a):W ogóle to podajesz tam mało danych, żadnego kodu, że trudno cokolwiek doradzić.
Mam Image3D i potrafię go obracać, skalować, przemieszczać i dzięki tej rutynce, malować po nim:
- Kod: Zaznacz cały
bool draw;
int old_position_X;
int old_position_Y;
void __fastcall TForm1::Image3D(TObject *Sender, TShiftState Shift, float X,
float Y, TVector3D &RayPos, TVector3D &RayDir)
{
if (Shift.Contains(ssLeft))
{
if (draw==true)
{
TVector3D HitPos;
Image3D->Context->Pick(X, Y, TProjection::pjCamera, RayPos, RayDir);
RayCastPlaneIntersect(RayPos, RayDir, Image3D->AbsolutePosition, Image3D->AbsoluteDirection, HitPos) ;
HitPos.X -= Image3D->Position->X;
HitPos.Y -= Image3D->Position->Y;
int w=Image3D->Bitmap->Width;
int h=Image3D->Bitmap->Height;
int x=(w/Image3D->Width)*(HitPos.X+Image3D->Width/2.0);
int y=(h/Image3D->Height)*(HitPos.Y+Image3D->Height/2.0);
Image3D->Bitmap->Canvas->BeginScene();
Image3D->Bitmap->Canvas->Stroke->Kind=TBrushKind::bkSolid;
Image3D->Bitmap->Canvas->Stroke->Color=claRed;
Image3D->Bitmap->Canvas->DrawLine(TPointF(old_position_X,old_position_Y),TPointF(x,y),1.0);
Image3D->Bitmap->Canvas->EndScene();
old_position_X=x;
old_position_Y=y;
}
}
else
{
draw=false;
}
}
Teraz chciałbym zrobić to samo, ale na zaimportowanym obiekcie OBJ - ale nie do końca wiem nawet jak się za to zabrać...
1. nie rozumiem zależności w obiektach 3D pomiędzy skalą a parametrami Width i Height - po co te parametry się powtarzają? To tylko zaciemnia obraz moim zdaniem...
2. nie rozumiem zależności między piklowo określonymi teksturami a pozycjami w świecie 3D, kilka lat temu robiłem jakieś próby z openGL i miałem mgliste pojęcie o pracy w środowisku 3D - ale to co oferuje FMX jest jakieś... innne
3. nie wiem jak przeliczyć określoną pozycję trójkąta w obiekcie na współrzędne tekstury która do malowania tego trójkąta jest wykorzystywana
Cyfrowy Baron napisał(a):A jeśli szukasz tutoriala to polecam wyszukiwarkę goole.
LOL! Swój wpis zacząłem od
"Szukam, szukam i nic nie mogę znaleźć"Najbardziej podpasiła mi seria Quark Cube
http://www.youtube.com/user/QuarkCube?feature=watch ale wygoda analizy kodu na youtube jest dalece niewygodna - a nigdzie nie mogę znaleźć by udostępniali te kody...