آموزش‌های ویدیویی

آموزش زبان انگلیسی و کامپیوتر

آموزش‌های ویدیویی

آموزش زبان انگلیسی و کامپیوتر

تیاق را داریم که چیزها

ساعت‌های متمادی در خانه offi می‌گذراند و در تعطیلات آخر هفته به خانه کار می‌برد. روزی به خانه خالی می‌آید. همسرش با بچه‌ها رفته‌است. او می‌دانست که او و همسرش دچار مشکل شده‌اند، اما به جای تلاش برای ایجاد رابطه قوی، او مشغول کار بود. متغیر از کارش در کار است و شغلش را از دست می‌دهد.

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

اگر در کار و یا با کودکان کار نکنند، اغلب مشغول تماشای تلویزیون، fi، بازی گلف، یا خرید هستند. با این حال، آن‌ها می‌دانند که از چیز مهمی دوری می‌کنند. این تنبلی است. تنبلی. تنبلی. تنبلی.

پس این درد به چه درد می‌خورد؟ پاسخ این است: یک طمع کوچک.

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

بنابراین برای حفظ این احساس آرزوی تحت کنترل، اغلب والدین به دنبال راه‌هایی برای سرکوب کردن آن اشتیاق با گناه هستند. شما فقط به خودتان فکر می‌کنید. تو خبر نداری که برادر و خواهر داری؟ " یکی از موارد مورد علاقه مادرم بود ". می‌خواهید چه چیزی را برای شما بخرم؟ او گفت: " آیا فکر می‌کنید ما از پول ساخته شده‌ایم؟ آیا فکر می‌کنید پول روی درختان رشد می‌کند؟ ما مردم ثروتمند نیستیم.

کلمات خیلی زیاد نبود، اما آن سفر عذاب وجدان که با حرف‌هایی که به من زده بود، ادامه پیدا کرد.

طراحی لوگو

طراحی لوگو

طراحی لوگو API پیتون مورد استفاده قرار می‌گیرد. در هر دو نوع پلاگین - in را می‌توانید با استفاده از پ لوگو  مدیر in یا با استفاده از script (MEL یا پیتون) بارگذاری و تخلیه کنید. The Plug یک راه سریع و آسان را برای بارگیری و تخلیه هر دو پلاگین های C + + و پایتون انجام می‌دهد.

 

در پنجره مدیر طراحی لوگو 

اگر یک plug - in loaded شود، اطلاعات درباره آیتم می‌تواند با کلیک روی دکمه "i" پیدا شود. برای توسعه دهندگان که می‌خواهند scripts برای بارگیری و تخلیه plug را بنویسند، دستورها MEL زیر در دسترس هستند:

نام loadPlugin طراحی لوگو 

پارامتر نام پرونده را در فایل شناسایی می‌کند. برای مثال، فرمان:

ویژگی loadPlugin؛ باره‌ای پل و اگین به نام "مشخصه" دارند. متغیر محیطی PLUG _ به دنبال پرونده‌ای به نام "feature.so" در لینوکس، "feature.mll" روی ویندوز، و "feature.mll" جستجو می‌شود.

" ib در Mac OS X. فرمان همچنین می‌تواند طراو  برای بار کردن feature.py روی هر یک از سکوهای پشتیبانی شده ما استفاده شود.

Plug با فرمان MEL تخلیه می‌شوند: طرو 

نام unloadPlugin طراحی لوگو 

نام پارامتر نام plug - in است. فرمان‌های معادل در پایتون در دسترس هستند.

 طراحی لوگو 

ساده‌ترین Plug مایا - in

زمانی که یک  طراحی لوگو زبان کامپیوتر جدید یاد می‌گیرید، اولین برنامه‌ای که احتمالاً می‌بینید یک برنامه "Hello World" است. کد زیر مجموعه کد مورد نیاز برای "Hello World" به پنجره ویرایشگر متنی در مایا است.

و شامل " <مایا" و "MSimple" هم میشه اچ. اس. اس

و شامل " <مایا" و "M طراحی لوگو Global" هم میشه اچ. اس. اس

DeclareSimpleCommand (helloWorld، "Autodesk"، "۸.۵")؛

MSt طراحی لوگو atus helloWorld:: (const MArgList &)

{…}

    MGlobal::displayInfo("Hello World\n");     return MS::kSuccess;

.....

 

نسخه API پایتون به شرح زیر است:

وارد کردن سیستم لگو  وارد کردن maya.Open مایا به عنوان OpenMaya وارد کننده maya.Open به عنوان OpenMayaMPx

= 1.

# scriptedCommand کلاس فرمان (OpenMayaMPx.MPxC ommand): def _ init (خود):

OpenMayaMPx.MPxC ommand. _ _ ((خود، argList): چاپ "سلام جهان! "

# Creator def (): 

بازگشت به xPtr (scriptedCommand)

 

# Initialize خط کدنوشته - initializePlugin (mobject):

mplugin = OpenMayaMPx.MFnP lugin (mobject) تلاش می‌کند:

mplugin.regi sterCommand (kPluginCmdName، cmdCreator) به جز:

            sys.stderr.write( "Failed to register command: %s\n" % kPluginCmdName )

raise طراحی لوگو 

 

# Uninitialize خط کدنوشته - uninitializePlugin (mobject):

mplugin = OpenMayaMPx.MFnP lugin (mobject) تلاش می‌کند:

mplugin.dere gisterCommand (kPluginCmdName) به جز:

  sys.stderr.write( "Failed to unregister command: %s\n" % k طحی گو PluginCmdName )

rais

 

این مثال فرمان جدید "spHelloWorld" را تعریف می‌کند. ما از پیشوند "sp" استفاده می‌کنیم چون این یک plug - in است.

پس از جمع‌آوری و / یا در دسترس از طریق دوشاخه MAYA، دستور MEL زیر را تای طری گو پ کنید:

loadPlugin "helloWorld"؛ helloWorld؛ unloadPlugin؛ helloWorld

دو پلاگین ها یا پلاگین ها می‌توانند با دستورها بالا بارگیری و تخلیه شوند.

یک مثال پیچیده‌تر

همانطور که در مثال helloWorld نشان‌داده شده‌است، اجرای استاندارد helloWorld - in in آسا طراحی لوگو ن است. پلاگ هیدرات در زیر یک مثال پیچیده از یک plug - in Maya است.

# شامل <ریاضی. h

و شامل " <مایا" و "MSimple" هم میشه اچ. اس. اس

و شامل " <مایا" و "MFnNurbsCurve" هم میشه اچ. اس. اطاحیگو 

و شامل " <مایا" و "MPointArray" هم میشه اچ. اس. اس

و شامل " <مایا" و "MDoubleArray" هم میشه اچ. اس. اس

# شامل <مایا یا MPoint. ساعت> # شامل <مایا یا MIOStream است. h طراحی لوگو 

 

DeclareSimpleCommand (مارپیچ، "Autodesk"، "۸.۵")؛

 

مارپیچ MStatus:: (const MArgList & args) طراحی لوگو 

{…}

MStatus stat؛ const unsigned = = ۳؛ / / Number of const const unsigned ncvs = ncvs؛ / / Number of spans const unsigned = spans - ۱؛ / / Number> knots دوتایی = ۴.۰؛ / / Helix شعاع دو برابر = ۰.۵؛ / / Helix.

بدون من،

 

/ / / / / / / / / / / / / / / / / / / / / طراحی لوگو 

برای (i = ۰؛ i + +) اگر (P + +) = = حلقه args.asSt (i، & stat)

& & MS:: = = stat)

{…}

double = args.asDo uble (+ + i، & stat)؛ اگر (MS:: = = stat)

گام = tmp؛ طراحی لوگو 

.....

در غیر این صورت اگر (MString) = = حلقه args.asSt (i، & stat)

& & MS:: = = stat)

{…}

double = args.asDo uble (+ + i، & stat)؛ اگر (MS:: = = stat)

شعاع = tmp؛

.....

 

MPointArray controlVertices؛

MDoubleArray knotSequences؛

 طراحی لوگو 

/ / / تنظیم cvs و knots برای فرم مارپیچ برای (i = ۰؛ i + +) controlVertices.appe (MPoint) = cos (()، گام * (دوبرابر) i، شعاع گناه ((دو برابر))؛

 

به ۰ / ۰ من <+ i +

 

/ / حالا منحنی را ایجاد کنید

منحنی curveFn؛ منحنی MObject = curveFn.crea (controlVertices، knotSequences، deg)

MFnNurbsC  urve: kOpen، دروغ، غلط،

: kNullObj، &

     if ( MS::kSuccess != stat )             cout << "Error creating curve.\n";

فوراً برگرد.

.....

این مثال نشان می‌دهد که طراحی لوگو  چگونه از API برای تجزیه آرگومان‌های داده‌شده به یک فرمان استفاده کنیم، چگونه از کلاس‌های آرایش استفاده کنیم، چگونه یک منحنی ایجاد کنیم و چگونه وضعیت بازگشت را بررسی کنیم. این عملیات وظایف استاندارد برای توسعه پلاگ است.

 

یک مثال مشابه با استفاده از API "مایا پیتون" به شرح زیر است:

 

وارد کردن maya.Open مایا به عنوان OpenMaya وارد کردن maya.Open به عنوان sys وارداتی OpenMayaMPx، ریاضی

= 1.

p = - p = - پیج " - پیج " = - z  طراحی لوگو = - radius "

# scriptedCommand کلاس فرمان (OpenMayaMPx.MPxC ommand): def _ init (خود):

OpenMayaMPx.MPxC ommand. _ (خود)

def doit (خود،):

deg = ۳ ncvs = ۲۰

spans = ncvs - deg nknots = spans + ۲ * شعاع ۱ = ۴.۰ - ۰.۵ = ۰.۵

             

. بحث رو تموم کن

argData = OpenMaya.MArg پایگاه‌داده ((self.synt، args) اگر argData.isFl agSet (kPitchFlag):

گام = argData.flag ArgumentDouble (kPitchFlag، ۰) اگر argData.isFl agSet (kRadiusFlag):

شعاع = argData.flag ArgumentDouble (kRadiusFlag، ۰)

 

controlVertices = OpenMaya.MPoi ntArray () kn طراحی لوگو otSequences = OpenMaya.MDou bleArray ()

 

# تنظیم cvs و گره‌ها برای مدار رشته‌ای

<OrderedListItem>. </ OrderedListItem

برای i در محدوده (۰، ncvs): controlVertices.appe (nd)

OpenMaya.MPoi nt (شعاع *)،

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

برای i در محدوده (۰، nknots): knotSequences.appe (i)

             

# ۱ منحنی را ایجاد کنید

<OrderedListItem>. </ OrderedListItem

curveFn = OpenMaya.MFnN urbsCurve ()

             

nullObj = OpenMaya.MObj ()

 

سعی کنید: طراحی لوگو 

curveFn.crea te (controlVertices)

، "knotSequences"، "deg"

OpenMaya.MFnNurbsCurve.kOpe n،

۰، ۰، nullObj) به جز:

                   sys.stderr.write( "Error creating curve.\n" )                      raise

# Creator def (): طراحی لوگو 

# ایجاد فرمان بازگشت فرمان (scriptedCommand)

 

# NAME syntaxCreator ():

ترکیب = مالیات OpenMaya.MSyn ()

تاخیر syntax.addF (kPitchFlag، kPitchLongFlag، ble)

تاخیر syntax.addF (kRadiusFlag، kRadiusLongFlag، OpenMaya.MSyntax.kDou ble)

 

# Initialize خط کدنوشته - initializePlugin (mobject):

mplugin = OpenMayaMPx.MFnP lugin (mobject، "Autodesk"، "۸.۵"، "Any"):

mplugin.regi sterCommand (kPluginCmdName، cmdCreator، syntaxCreator) به جز:

  sys.stderr.write( "Failed to register command: %s\n" % kPluginCmdName )

raise

 

# Uninitialize خط کدنوشته - uninitializePlugin (mobject):

mplugin = OpenM طراحی لوگو ayaMPx.MFnP lugin (mobject) تلاش می‌کند:

mplugin.dere gisterCommand (kPluginCmdName) به جز:

  sys.stderr.write( "Failed to unregister command: %s\n" % kPluginCmdName )

raise

 

      

یکپارچگی در ادغام با مایا

خصوصیاتی که به عنوان پلاگین ها اجرا شده‌اند، برای اکثر قسمت‌ها، عملاً از ویژگی‌های builtin Maya غیرقابل‌تشخیص هستند. شما می‌توانید یک فرمان و یا یک‌گره را جستجو کنید تا ببینید آیا توسط یک plug - in اعمال شده‌است یا نه، اما معمولاً نه مایا و نه ویژگی‌هایی که توسط پلاگین ها اجرا می‌شوند، باید از تمایز آگاه باشند.

 

انواع Plug

از طریق API های مایا، پلاگین ها می‌توانند موارد زیر را اجرا کنند: انواع جدید اشیا، ابزار تعامل، مترجمان فایل داده، و دستور زبان برنامه‌نویسی جدید. برای فرمان‌های جدید، توسعه دهندگان ممکن است انتخاب کنند که undo و دوباره، عملیات batch mode، و رابط کاربری را با همان ظاهر و احساسرابط کاربر مایا اجرا کنند. فرمان‌های Plug را میتوان‌ به طور آزادانه در scripts MEL با دستور built (Maya) و دیگر commands (plug - in commands) مورد استفاده قرار داد.

در مایا ۸.۵، پلاگین ها می‌توانند موارد زیر را اجرا کنند:

  • فرمان‌ها (در دسترس از MEL یا پیتون) 
  • مترجمان فایل (به عنوان مثال صادر کنندگان برای موتورهای بازی، یا renderers ثالث)
  • نقاشی در openg 
  • solvers kinematic معکوس
  • shaders، چراغ‌ها، بافت‌ها
  • shaders سخت‌افزار 
  • پویانمایی رویه‌ای
  • simulators (به عنوان مثال مایا Classic Cloth به طور کامل با استفاده از API نوشته شده بود)
  • تغییر شکل تعریف‌شده توسط کارب طراحی لوگو ر
  • روبات‌های گرافیکی سه‌بعدی
  • اشکال هندسی
  • میدان‌های پویا
  • ساطع کننده ذره طراحی لوگو 
  • گره و قفل اتصال
  • monitors که به پیغام‌های مایا گوش می‌دهند
  • نمای مدل سفارشی
  • transformations تعریف‌شده ت طراحی لوگو وسط کاربر
  • کارگزار صدور حرکت
  • manipulators
  •  طراحی لوگو 
  • سیال تعریف‌شده توسط کاربر
  • ۲ - ۲ - ۲ - ۲ - ۲ - ۲ - ۲ - ۲ - ۲ - ۲ - ۲
  • viewport برجسته
  • هر نوع دیگری از گره سفارشی

مهم است که توجه د طراحی لوگو اشته باشید که تقریباً تمامی اطلاعات مورد نیاز از یک صحنه مایا از طریق API در دسترس است. ضرورتاً اگر داده‌ها در DG وجود داشته باشند، به احتمال زیاد راهی برای دستیابی به آن از طریق یک دستور یا مترجم فایل یا اتصال به آن با یک‌گره سفارشی وجود دارد. این مساله تعداد زیادی از فرصت‌ها برای اصلاح مایا برای برآورده کردن نیازهای گردش کار خاص، یا برای دریافت دقیق اطلاعات از مایا که یک کاربرد خاص نیاز دارد، ایجاد می‌کند.

 

در دسترسی به داده‌ه طراحی لوگو ای صحنه مایا

API ها در مایا اجازه می‌دهد تا به م طرا طراحی لوگو حی لوگو حتویات گراف صحنه، محتوای فهرست انتخاب، محتوای DG و غیره دسترسی داشته باشید.

دسترسی به وسیله ابزار: طراحی لوگو 

  • شی مایا که یک "نود" را در فایل صحنه مایا نشان طراحی لوگو  می‌دهد. روش‌هایی که برای کار با این اشیا لازم است به طور جداگانه از آن‌ها در کلاس به نام مجموعه‌های تابع تعریف می‌شود. ایجاد و حذف اشیا مایا مسئولیت مایا است.
  • اشیا گذرا که به عنوان ابزارهای نرv طراحی لوگو م‌افزاری  طراحی لوگو پایه استفاده می‌شوند (iterators، کلاس‌های کتابخانه ریاضی، فهرست‌های انتخاب، مسیرهای DAG و غیره). شما می‌توانید این کارها را با استفاده از API Maya ایجاد و نابود کنید. برخلاف Maya که نیاز به یک تابع برای کار دارند، این اشیا حاوی روش‌های خاص خود هستند.

 

پیاده‌سازی API مایا

API های مایا با انواع مختلفی از اشیا اجرا می‌شوند: شی مایا، مجموعه‌های تابع، اشیا گذرا و موضوعات پیشکار.

 طراحی لوگو 

تنظیم طراحی لوگو اشیا و توابع

اکثر توسعه API را میتوان‌ از طریق  اشیا و مجموعه‌های تابع انجام داد. این رویکرد برای رسیدگی به اشیا از نوع آزاد است. این امر باعث ایجاد سریع of اولیه بدون از دست دادن تایپ دهی قوی می‌شود هنگامی که این اطلاعات در کد تولید ضروری است.

اشیا مرجع (اشاره‌گر) برای موضوعات داخلی در مایا هستند. آن‌ها ابزاری را برای ارجاع به انواع اصلی در مایا مانند گره‌های DAG، گره‌های وابستگی، هندسه و غیره فراهم می‌کنند. یک مجموعه تابع، گروهی از روش‌ها است که روی یک شی عمل می‌کنند.

در زیر یک مثال سی + + خلاصه وجود دارد که تفاوت بین اشیا و مجموعه‌های تابع را نشان می‌دهد:

MObje طراحیn.chil d ()؛ اگر (obj.hasF n (MFn::))

{…} ط لوگو 

دوربین MFnCamera (obj)؛ cam.setH orizontalFieldOfView (cam.hori zontalFieldOfView) / ۲.۰)؛

در این مثال، the یک مرجع طراحیی یک نود دوربین در صحنه است و MFnCamera یک مجموعه تابع است که بر روی یک نود دوربین عمل می‌کند.

همچنین ایجاد نمونه‌های جدید از اشیا با استفاده از یک مجموعه تابع امکان پذیر است. برای مثال، در C + +

دوربی لوگو 

دوربین MObject = cam.crea (/ args …)؛ این یک دوربین جدید ایجاد می‌ طراحی لو به صحنه مایا اضافه می‌کند.

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