نمایش نتایج 1 تا 7 از 7

نام تاپیک: مشکل animation های در firemonkey

  1. #1
    کاربر دائمی آواتار firststep
    تاریخ عضویت
    مهر 1387
    محل زندگی
    ایران-خواستم از جنبه تفاهم باهم بگم
    پست
    502

    مشکل animation های در firemonkey

    با سلام و خسته نباشسد خدمت همه شما دوستان عزیز
    نمی دونم تا حالا شما هم امتحان کردین زمانی که دو تا floatanimation روی یک object قرار می دین و با هم start می کنین حالا مثلا با این مشخصات
    floatanimation 1
    property name= rotationangle.x
    start =0
    stop =360

    floatanimation 2
    property name= rotationangle.y
    start =0
    stop =360

    خوب با این فلوت ها جسم باید به همون شکل اولی در بیاد بعد از ایست کامل اما اگه ببینین متوجه می شین اصلاً این شکل نیست؟
    نمی دونم باید برای پیدا کردن پاسخم چی رو سرچ کنم اصلاً

  2. #2

    نقل قول: مشکل animation های در firemonkey

    سلام
    لطفاً در مسائلی از این دست پروژه نمونه ای را جهت تست راحتتر ضمیمه کنید.

  3. #3
    کاربر دائمی آواتار firststep
    تاریخ عضویت
    مهر 1387
    محل زندگی
    ایران-خواستم از جنبه تفاهم باهم بگم
    پست
    502

    نقل قول: مشکل animation های در firemonkey

    بله دوست خوبم شما درست می گید

    مثلاً اینtest_fmx.rar

  4. #4
    کاربر دائمی آواتار firststep
    تاریخ عضویت
    مهر 1387
    محل زندگی
    ایران-خواستم از جنبه تفاهم باهم بگم
    پست
    502

    نقل قول: مشکل animation های در firemonkey

    فکر کنم اولین نفری باشم که به این موضوع پی بردم.......

  5. #5

    نقل قول: مشکل animation های در firemonkey

    من توی سیستمم متوجه هیچ تغییری نشدم. میشه دقیق تر توضیح بدین که چه تغییری ایجاد میشه؟

  6. #6
    کاربر دائمی آواتار firststep
    تاریخ عضویت
    مهر 1387
    محل زندگی
    ایران-خواستم از جنبه تفاهم باهم بگم
    پست
    502

    نقل قول: مشکل animation های در firemonkey

    ببینین مقادیر فلوت ه ۳۶۰ درجه دور رو نشون میدن خوب با این تفاسیر قانون شی بعذ اژ اجرای انیمیشن باید به شکل اولیه برگرده اما می بینیم که این طور نیست و شکل دارای انحراف است اما زمانی که فقط یک فلوت را استارت می کنیم درست اجرا میشه

  7. #7
    کاربر دائمی آواتار Ananas
    تاریخ عضویت
    آبان 1390
    محل زندگی
    طول 50 و عرض 34 درجه
    سن
    36
    پست
    894

    نقل قول: مشکل animation های در firemonkey

    سلام.
    پیدا کردم اشکال از کجاست.
    وقتی مقدار X یا Y یا Z رو برای RotationAngle تغییر میدید یک متغیر داخلی در RotationAngle به اسم FSave هست که ابتدا مقدار زاویه ی فعلی رو (آخرین وضعیت دوران) ذخیره میکنه بعد مقداری رو که شما بهش دادید ذخیره میکنه. متغیر FSaveیک جور Offset به حساب میاد و کارش اینه که دوران جدید رو حول محور موضعی خود شی (با استفاده از آخرین وضعیت قبلی) اعمال کنه.
    به همین خاطر در هر فریم که شی حول یکی از محور ها دوران داده میشه ، در واقع حول محور X یا Y یا Z خود شی دوران داده میشه (نسبت به آخرین وضعیت قبلی) نه حول محور های مختصات جهانی.
    حالا برای این که اون رو گول بزنیم میشه قبل از تغییر زاویه ی جدید اول مقادیر x و Y و Z فعلی رو ذخیره کنیم بعد از تابع ResetRotationAngle استفاه کنیم (تا مقادیر زوایا و offset اونها به صفر تغییرکنه) بعد سه تا مقدار رو به دلخواه تغییر بدیم بعد اون ها رو به ترتیب آخرین محور به اولین محور ست کنیم (چون دوران قبلی روی کارمون تاثیر نگذاره).
    نکته : اگر ترتیب دوران x بعد y بعد z رو بخوایم شبیه سازی کنیم اول باید زاویه ی z بعد y بعد x رو ست کنیم، دلیلش اینه که زاویه های موجود تو هر مرحله از ست کردن، روی کارمون تاثیر میگذاره پس ترتیب باید از آخر به اول باشه.
    مثلا اگر بخوایم با استفاده از دو تا Trackbar دوران X و Y یک TLayer3D رو تغییر بدیم بر اساس دوران x بعد y بعد z ، کدی مشابه کد زیر می تونیم بنویسیم :

    procedure TForm1.TrackBar1Change(Sender: TObject);
    var
    y, z : Single;
    begin
    // x = newVal
    y := Layer3D1.RotationAngle.Y;
    z := Layer3D1.RotationAngle.Z;

    Layer3D1.ResetRotationAngle;

    Layer3D1.RotationAngle.Z := z;
    Layer3D1.RotationAngle.Y := y;
    Layer3D1.RotationAngle.X := (Sender as TTrackBar).Value;
    end;
    procedure TForm1.TrackBar2Change(Sender: TObject);
    var
    x, z : Single;
    begin
    x := Layer3D1.RotationAngle.X;
    // y = newVal
    z := Layer3D1.RotationAngle.Z;

    Layer3D1.ResetRotationAngle;

    Layer3D1.RotationAngle.Z := z;
    Layer3D1.RotationAngle.Y := (Sender as TTrackBar).Value;
    Layer3D1.RotationAngle.X := x;
    end;

    برای FloatAnimation هم میتونید مثلا برای مقادیر Value این دو تا Trackbar انیمیشن رو انجام بدید تا OnChange اون ها انجام بشه.

تاپیک های مشابه

  1. مشکل فرم های Mirrored در Drawing
    نوشته شده توسط vzsoft در بخش VB.NET
    پاسخ: 1
    آخرین پست: چهارشنبه 17 خرداد 1385, 22:41 عصر
  2. مشکل رکورد های اضافه در گزارش
    نوشته شده توسط bhz1919 در بخش گزارش سازی با Crystal Report
    پاسخ: 9
    آخرین پست: جمعه 11 فروردین 1385, 21:00 عصر
  3. مشکل لینک های بالا صفحه
    نوشته شده توسط oxygenws در بخش گفتگو با مسئولین سایت، درخواست و پیشنهاد
    پاسخ: 0
    آخرین پست: یک شنبه 20 شهریور 1384, 13:20 عصر
  4. مشکل برنامه های exe شده تحت Xp با 98
    نوشته شده توسط ehsan_ansaripoor در بخش برنامه نویسی در 6 VB
    پاسخ: 5
    آخرین پست: چهارشنبه 09 شهریور 1384, 16:19 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •