رفتن به مطلب
Salar82

آموزش کامل کار با B4XTurtle *بسیار مهم و کاربردی*

پست های پیشنهاد شده

Salar82    702

بسم الله الرحمن الرحیم

سلام و درود خدمت همه‌ی اعضای انجمن انسرسنتر

B4X چن وقتی هست از یه سری کتابخونه ها رونمایی کرده؛ مثل B4XTurtle و B4XPages و .... که فوق العاده کاربردی هستن.

همونطور که قولش رو داده بودم، قرار شد یه دوره کامل و رایگان آموزش کار با این کتابخونه های جامع و کامل رو قرار بدم که خدا رو شکر آموزش B4XPages به اتمام رسید و خوشبحتانه با استقبال زیادی روبرو شد. :53:

ان‌شاءالله بزودی دوره B4XTurtle رو شروع می‌کنیم :) 

منتها قبل از شروع آموزش، یه سری نکات هست که باید خدمت همگی عرض کنم:

 

1- برای اینکه آموزشها پراکنده نشن، لطفا تو این پست، چیزی نفرستین و اگر موردی، سوالی و یا مشکلی بود، یه پست جدید ایجاد کنید.

2- آموزشها تا اطلاع ثانویه بصورت چند روز یکبار قرار داده میشن (بدلیل کمبود وقت بنده) اما هر زمان که وقت اضاف آوردم، حتما سعی میکنم جلسه بعد رو آماده کنم و بفرستم. (چون خودم هم باید مطالعه در این مورد داشته باشم :))

3- آموزش های مقدماتی همینجا قرار داده میشن و دیگر سورس ها و آموزش های مربوطه، تو یه پست جدید میذارم تا مشکلات مربوط به اونا، همونجا مطرح بشن.

4- البته لینک آموزشهای دیگه هم، اینجا قرار داده میشه. پس تمامی آموزشهای مربوط به B4XTurtle، همینجا در دسترس هستن.

5- آموزشها، کاملا مطابق با سایت مرجع پیش میره. پس نگران ناقص بودن دوره نباشید :) 

6- مهم ترین نکته‌ای که مد نظر بنده هست و بهمین خاطر آموزش رو رایگان گذاشتم، اینه:

هزینه هر آموزش، یه صلوات برای سلامتی و ظهور امام عصر (عج) هست ....

 

ان شاءالله تا چن روز آینده، دوره آموزشی رو شروع می‌کنیم.

امیدوارم در تمام مراحل زندگی موفق باشید.

:53::53::53::53:

  • پسندیدن 3
  • تشکر 1
  • متعجب 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
Salar82    702

جلسه اول

در در 25 آبان 1399 در 10:53، Salar82 گفته است :

هزینه هر آموزش، یه صلوات برای سلامتی و ظهور امام عصر (عج) هست ....

با نام و یاد خدا جلسه اول رو شروع میکنیم.

قبل از اینکه مبحث رو بطور جدی شروع کنیم، یه مقدمه درمورد B4XTurtle بگم که اصلا چی هست و چه هدفی داره....

 

اول یه پیش نمایشی با هم ببینیم:

1-gif.92745

 

به گفته سایت مرجع:

  • B4XTurtle، کتابخونه ای هست که از زبان برنامه نویسی Logo Classic گرفته شده.
  • کتابخونه جزو کتابخونه های داخلی هست
  • کتابخانه، Cross-Platform هست. یعنی براحتی می‌تونید در B4i , B4J , B4A و یا حتی در B4XPages استفاده کنید.
  • هدف این کتابخونه، کمک به آموزش برنامه نویسی با یه طراح بصری (Turtle) به دانش آموزان هست.
  • کار با کتابخونه خییییلی سادست.
  • برای کار با کتابخونه در بیشتر موارد، از علم شیرین هندسه باید استفاده کنیم :) که ان‌شاءالله در جلسات آینده، کامل بررسی می‌کنیم.
  • دقت داشیته باشید که از نسخه B4A - 10 و B4J-8.5 و B4i-6.8 یا نسخه بالاتر استفاده کنید.

 

براحتی میشه با B4XTurtle، تصاویر زیبایی مثل زیر خلق کرد:

Tree-gif-b4xturtle.gif.0bb3d8a05213d9dd42da3fc84dad3ff6.gif

 

دیگه مقدمه ای نمونده و ان‌شاءالله از جلسه آینده، وارد کد نویسی میشیم :) 

 

 

موفق باشید

اگر نقدی، مشکلی و یا ایرادی از بنده هست، تو خصوصی میتونید پیام بدید. حتما استقبال میکنم. :) 

:53::53::53::53:

  • پسندیدن 4
  • متعجب 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
Salar82    702

جلسه دوم

در در 27 آبان 1399 در 10:53، Salar82 گفته است :

هزینه هر آموزش، یه صلوات برای سلامتی و ظهور امام عصر (عج) هست ....

همونطور که گفته بودم، از این جلسه، وارد کدنویسی برای B4XTurtle میشیم:

 

  1. دقت کنید که B4XTurtle یک کتابخونه b4xlib هست و با بقیه کتابخونه‌ها فرقی نداره
  2. B4XTurtle، یه custom view هست که باید از طریق دیزاینر به لایوت اضاف بشه.
  3. برای ایجاد یک پروژه با B4XTurtle، میتونید از بخش New Project، گزینه B4XTurtle رو انتخاب کنید.

 

  • نحوه اضافه کردن ویوی B4XTurtle به لایوت:

بعد از فعال کردن کتابخونه B4XTurtle، وارد Designer میشیم و از تب AddView، بخش CustomView، ویوی B4XTurtle رو اضافه می‌کنیم. به همین سادگی :) 

دقت کنید که این ویو، فضای کشیدن رو برامون مشخص میکنه. درواقع کاغذ نقاشیمونه:bigsmile:

 

  • شروع کار با B4XTurtle:

تا اینجا فهمیدیم که B4XTurtle چی هست... حالا بریم ببینیم چه کارهایی میتونیم با این کتابخونه بکنیم.  (سعی میکنم اکثر متدهای این کتابخونه رو بررسی کنیم)

 

*تغییر خصوصیات نقاشی :)

با یسری کدها، میشه خصوصیات نقاشیمون رو مثلا تغییر رنگ، سایز، سرعت کشیدن و .... رو شخصی سازی کرد که ان‌شاءالله در این جلسه، کامل بررسیشون می‌کنیم.

 

1. تغییر رنگ قلم:

با استفاده از متد زیر، میتونید رنگ قلم رو تغییر بدید:

 Turtle.SetPenColor(Colors.Blue)

با این کد، رنگ قلم، مثل این میشه:

java_oCn7ECmsOl.png

دقت کنید که با این کد، رنگ قلم همیشه ثابته مگر اینکه دوباره موقع رسم، بطور دستی، دوباره رنگ رو تغییر بدید.

 

یه حالت دیگه هم هست، RandomColor:

در این حالت، B4XTurtle، بعد از کشیدن هر خط، رنگ قلم رو بصورت رندم تغییر میده.

Turtle.SetPenColor(Turtle.RandomColor)

بجای اینکه رنگ رو خودمون تعیین کنیم، از متد RandomColor خود کتابخونه استفاده میکنیم که نتیجش میشه مثل زیر:

java_XcTxbyYs9q.png

توجه داشته باشید که الان فقط رنگ مد نظر بنده هست و در جلسات آینده، با مثالها و نحوه رسم هم آشنا میشیم.

 

2. تغییر سایز قلم:

با این متد، براحتی میشه نازکی قلم رو تغییر داد:

Turtle.SetPenSize(2)

B4A_YF7pYg2hbp.png

یک شکل که دارای Random Color و سایز های مختلف برای قلم.

 

نحوه تغییر سایز قلم بصورت رندم:

برای این منظور، از کد زیر میشه استفاده کرد:

Turtle.SetPenSize(Rnd(1, 6))

 

3. تغییر سرعت قلم:

با کد زیر هم میشه سرعت کشیدن رو کم و یا زیاد کرد:

Turtle.SetSpeedFactor(10)

هر چی ورودی این متد بیستر باشه، سرعت کشیدن هم بیشتره.

 

4. نمایش قلم:

با اینکار، قلم (مثلث قرمز رنگ) دیگه نمایش داده نمیشه.

Turtle.SetTurtleVisible(True)'or flase

 

 

نوجه داشته باشید که همه‌ی اینها رو میشه تو یه خط نوشت:

Turtle.SetPenColor(Turtle.RandomColor).SetPenSize(2).SetSpeedFactor(10).SetTurtleVisible(True)

 

در جلسات بعد، رسم کردن رو شروع میکنیم.

موفق باشید

اگر نقدی، مشکلی و یا ایرادی از بنده هست، تو خصوصی میتونید پیام بدید. حتما استقبال میکنم. :) 

:53::53::53::53:

  • پسندیدن 5

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
Salar82    702

جلسه سوم

در در 2 آذر 1399 در 11:59، Salar82 گفته است :

هزینه هر آموزش، یه صلوات برای سلامتی و ظهور امام عصر (عج) هست ....

 

در جلسه قبل، بطور کامل با تغییر خصوصیات قلم آشنا شدیم، تو این جلسه رسم رو شروع می‌کنیم...

 

پنج متد بسیار مهم در رسم با B4XTurtle وجود داره که بررسیشون میکنیم:

  • MoveForward:

مثال:

Sub Turtle_Start
    Turtle.MoveForward(100)
End Sub

با این متد، قلم به اندازه 100dip، به سمت جلو(در حالت اولیه به سمت راست) حرکت می‌کنه و یه خط بطول 100dip رسم میکنه:

619461837_UntitledProject.gif.c6b19445514b9c1f8090017861d4e77a.gif

 

نکته بسیار مهم: در B4XTurtle هرگز از dip استفاده نکنید؛ dip بصورت Internal به کدتون اضافه میشه.

 

  • MoveBackward:

مثال:

Sub Turtle_Start
    Turtle.MoveForward(100)
End Sub

با این متد، قلم به اندازه 100dip، به سمت عقب حرکت می‌کنه (یعنی اگر نوک قلم بسمت راست باشه، باندازه 100dip، به سمت چپ حرکت میکنه_بدون اینکه قلم تغییر جهت بده_) و یه خط بطول 100dip در خلاف جهت رسم میکنه:

1111.gif.451c768e8b1f0e6d737239ed0fe27b70.gif

 

 

  • TurnLeft:

 مثال:

Sub Turtle_Start
    Turtle.TurnLeft(90)
End Sub
  • TurnRight:

مثال:

Sub Turtle_Start
    Turtle.TurnRight(90)
End Sub

 

دقت کنید که کارکرد دو متد TurnRight و TurnLeft دقیقا عین هم هستند:

در هر دو متد، یک ورودی داریم که درجه رو از ما میگیره؛ بعنوان مثال، TurnRight(90)f ، زاویه قلم ما باندازه 90 درجه به راست میچرخه:

105687490_UntitledProject(2).gif.a08adef9654d53ce2e9b8ad0093f738a.gif

 

از این دو متد، در بسسسسیاری از جاها استفاده میشه. مثلا رسم مربع:

2.gif.52f148b08d437a6b022bfdbb0af80f4c.gif

با رسم ها و مثال ها در جلسات آینده بیشتر آشنا میشیم.

 

 

  • SetAngle:

با این متد، یک زاویه بین 0 تا 360 به قلم میدیم. بطوری که زاویه 0، سمت چپ و زاویه 180 درجه، طرف راست هست. یعنی:

اگر ما این متد رو برابر 0 بذاریم، قلم بسمت چپ جهت گیری میکنه و اگر رو 180 باشه، جهت قلم سمت راست میشه.

مثال:

Turtle.SetAngle(135).MoveForward(50)

با این کد، زاویه 135 درجه تغییر پیدا میکنه و باندازه 50dip به سمت جلو جرکت میکنه. نتیجه میشه:

spacer.png

 

 

دو متد کاربردی دیگه که بسیار میتونه کاربردی باشه، PenUp و PenDown هست:

* از اسمشون پیداست که کاربردشون چیه، متد PenUp، رسم رو متوقف میکنه(دقت کنید رسم متوقف میشه نه جابجایی، یعنی قلم حرکت میکنه ولی چیزی رسم نمیشه) در واقع قلم رو برمیداره :)

PenDown، دقیقا عکس اینه.

مثال:

mb3vabCstA.gif

دقت کنید که بعد از رسم دایره، باندازه شعاع، به سمت چپ حرکت میکنه اما چیزی نمیکشه.

 

تا الان با 90 درصد رسم در B4XTurtle آشنا شدیم. دیگر متدها و رویدادها، خیلی مهم نیستن اما در جلسات آینده، حتما بررسی میکنیم.

 

در تاپیک زیر، مثال ها برای B4XTurtle، قرار داده میشه که میتونید استفاده کنید :)

 

 

در جلسات آینده، بیشتر این کتابخونه رو بررسی میکنیم.

 

موفق باشید

اگر نقدی، مشکلی و یا ایرادی از بنده هست، تو خصوصی میتونید پیام بدید. حتما استقبال میکنم. :) 

:53::53::53::53:

  • پسندیدن 4

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
Salar82    702

جلسه چهارم

در در 4 آذر 1399 در 10:52، Salar82 گفته است :

هزینه هر آموزش، یه صلوات برای سلامتی و ظهور امام عصر (عج) هست ....

تو این جلسه، بیشتر با متدهای این کتابخونه آشنا میشیم:

  • MoveTo:
MoveTo (X, Y)

با این متد، قلم به مختصات داده شده میره.

 

  • SetX:
SetX (X)

با نوشتن این کد، قلم به X داده شده در محور Xها میره.

 

  • SetY:

دقیقا عین بالا ولی در محور Y ها...

 

  • DrawText :
DrawText (Text As String)

با این متد، یه متن بهش میدی و قلم اون رو مینویسه...

البته به هیچ وجه چیزی نیست که فکر میکنین. خودتون امتحان کنید ببینید :)

 

  • Home :
Turtle.Home

با این دستور، قلم به مرکز صفحه بر میگرده(بدون اونکه چیزی بکشه)

 

  • ClearScreen :
Turtle.ClearScreen

با این کد، تمام طرح ها، حذف میشن

 

  • Pause / Resume:

این دو متد، نقاشی رو متوقف میکنه و یا ادامه میده

 

  • Stop:

با این کد، بطور کامل طراحی متوقف میشه

 

  • IsMoving :

با این متد، میشه چک کرد که آیا قلم در حرکته یا نه:

If Turtle.IsMoving Then
	'TODO'
End If

 

  • SetFontAndAlignment :

اگر از DrawText استفاده میکنید، با این متد میشه فونتش رو تغییر داد.

Turtle.SetFontAndAlignment(xui.CreateDefaultBoldFont(20), "LEFT")

 

  • RabbitMode / TurtleMode:

فعال و غیر فعال کردن RabbitMode(اگر این مد فعال باشه، نقاشی همون اول بدون هیچ حرکتی کشیده میشه)

Turtle.RabbitMode 'Enabled RabbitMod'
'Or'
Turtle.TurtleMode 'Disabled RabbitMode'

 

  • GetX / GetY / GetAngle:

این سه متد، بترتیب زاویه قلم، موقعیت Y و موقعیت X رو برمیگردونن. :) 

 

به این کدها دقت کنید:

Sub Turtle_Start
    Log(Turtle.GetX) 'outputs 400 (center)
    Turtle.SetX(200)
    Log(Turtle.GetX) 'still outputs 400
End Sub

دقت کنید، ما اومدیم با SetX، موقعیت 200 رو تعیین کردیم ولی وقتی GetX رو لاگ میگیریم، دوباره 400(موقعیت اولیه) رو برمیگردونه.

 

این نکته رو توصیه میکنم بخاطر داشته باشید که بطور پیشفرض، دستورها در صف قرار میگیرند بخاطر همین دوباره 400 رو برمیگردونه(در حالت بالا)

 

به کدهای زیر هم دقت کنید که چه موقع چه چیزی رو برمیگردونه:

Sub Turtle_Start
    Turtle.RabbitMode
    Log(Turtle.GetX) 'outputs 400 (center)
    Turtle.SetX(200)
    Log(Turtle.GetX) 'outputs 200
End Sub

در حالت RabbitMode، وظایف در صف قرار نمیگیرند.

 

Sub Turtle_Start
    Log(Turtle.GetX) 'outputs 400 (center)
    Turtle.SetX(200)
    Wait For Turtle_Done
    Log(Turtle.GetX) 'outputs 200
End Sub

میشه از Wait For هم استفاده کرد.

 

البته بهتره به این صورت نوشته شه:

If Turtle.IsMoving Then
    Wait For Turtle_Done
End If

 

در جلسه بعد هم، رویدادهای این کتابخونه رو بررسی میکنیم :53:

 

موفق باشید

اگر نقدی، مشکلی و یا ایرادی از بنده هست، تو خصوصی میتونید پیام بدید. حتما استقبال میکنم. :) 

:53::53::53::53:

  • پسندیدن 4

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • جدید...