| mathsPIC(1) | General Commands Manual | mathsPIC(1) |
نام (NAME)
mathsPIC - یک برنامه فیلتر Perl برای PiCTeX
نویسندگان (AUTHORS)
A. Syropoulos و R.W.D. Nickalls (۲۶ آوریل ۲۰۱۰)
asyropoulos[at]<yahoo><com>
dick[at]<nickalls><org>
توضیحات (DESCRIPTION)
برنامه mathsPIC یک برنامه فیلتر Perl برای PiCTeX است. mathsPIC دارای قابلیت ماکرو و کتابخانه ماکروی اختصاصی خود بوده و امکان استفاده از دستورات mathsPIC، PiCTeX، TeX و LaTeX را فراهم میکند. یکی از ویژگیهای برجسته mathsPIC امکان دسترسی به خط فرمان است و از این رو به کاربر اجازه میدهد با فراخوانی Perl و سایر برنامههای نوشتهشده برای انجام ترسیمهای خاص، دستورات mathsPIC را گسترش دهد. برای جزئیات کامل و مثالها، راهنمای بسته را ببینید. آخرین نسخه را میتوان از نشانی زیر بارگیری کرد:
CTAN: tex-archive/graphics/pictex/mathspic/perl
دستوراتی که میتوان در فایل اسکریپت mathsPIC استفاده کرد به چهار گروه اصلی تقسیم میشوند: (الف) دستورات ماکروی mathsPIC (با پیشوند %def)، (ب) دستورات معمولی mathsPIC (بدون بکاسلش)، (ج) دستورات معمولی PiCTeX (همگی دارای بکاسلش)، و (د) دستورات معمولی TeX و LaTeX (همگی دارای بکاسلش).
توابع ریاضی زیر قابل استفاده هستند (توجه داشته باشید که کسرهای اعشاری با مقدار مطلق کمتر از ۱ باید دارای یک صفر قبل از ممیز باشند). همچنین توجه داشته باشید که تمام توابع مثلثاتی به آرگومان بر حسب رادیان نیاز دارند.
مثلثاتی: sin()، cos()، tan()، asin()، acos()، atan()
باقیمانده: rem()؛ به عنوان مثال var r=12 rem(5)
عدد صحیح: int()؛ به عنوان مثال var r= int(3.87) --> 3
علامت (مقادیر -1، 0، +1 را برمیگرداند): sgn()؛ به عنوان مثال var s=sgn(-3.27) --> -1
ریشه دوم: sqrt()؛ به عنوان مثال var s = sqrt(14)
به توان رساندن: **؛ به عنوان مثال var j = r**2
ثابت پی (3.14159...): _Pi_ و _pi_
ثابت e (2.71828...): _E_ و _e_
ضخامت خط: _linethickness_ ؛ به عنوان مثال var t = _linethickness_
استفاده در خط فرمان (COMMAND-LINE USE)
perl mathspic.pl [-b] [-c] [-h] [-o <outfile>] <infile>
-b در صورت تشخیص خطا توسط mathsPIC، بوق هشدار (beep) را فعال میکند
-c نوشتن توضیحات (کامنتها) در فایل خروجی را غیرفعال میکند
-h فایل راهنما را نمایش میدهد
-o نام فایل خروجی را تعیین میکند
دستورات ماکرو (MACRO COMMANDS)
دستورات تعریف ماکرو با %def آغاز میشوند و میتوانند ۰، ۱ یا چند پارامتر بپذیرند. ماکروها عموماً به عنوان بخشی از دستور var همانطور که در زیر نشان داده شده است استفاده میشوند. ماکروها با استفاده از دستور %undef حذف میشوند.
-----syntax:
%def MACRONAME(parameters)<macrodefinition>
%undef MACRONAME(parameters)
-----notes:
نکات: (الف)
حتی اگر
پارامتری
استفاده
نشود، () باید
در تعریف
آورده شود،
(ب) نام
میتواند
هر ترکیبی
از حروف
بزرگ و کوچک
و اعداد
باشد، (ج)
وقتی ماکرو
در یک دستور
استفاده
میشود، با
نماد & شروع
میشود، (د)
ایده خوبی
است که
همیشه یک
نماد % در
انتهای
تعریف قرار
داده شود،
(هـ) توضیحات
(با پیشوند
نماد %) را
میتوان
دقیقاً
مانند TeX یا LaTeX
پس از تعریف
ماکرو قرار
داد.
-----examples:
%def d2r()_pi_/180% % degrees2radians
%def AreaOfRectangle(x,y)x*y% % width x, length y
%undef d2r() % delete the macro
-----use:
var j2= 6*(&d2r(45) + 23)
var a3 = 3*&AreaOfRectangle(5,7)
دستورات عمومی (GENERAL COMMANDS)
عبارتهای
عددی (NUMERICAL EXPRESSIONS)
هنگام کار
با
دستورات،
مکرراً به
اصطلاح
«عبارت
عددی»
اشاره
خواهیم کرد
که منظور از
آن یکی از
موارد زیر
است: (الف) یک
عدد (صحیح یا
اعشاری)، (ب)
یک متغیر یا
ثابت عددی
(تعریفشده
با استفاده
از دستور var
یا const)، (ج) هر
تابع،
ماکرو یا
عبارت
ریاضی mathsPIC که
به یک عدد
ارزیابی
شود، یا (د)
یک جفت از
نام نقاط
(مانند AB) که
نمایانگر
فاصله
فیثاغورثی
بین دو نقطه
است. برای
کسرهای
اعشاری
کمتر از یک،
باید از صفر
قبل از ممیز
استفاده
شود.
به طور کلی،
اگر
آرگومان یک
دستور عددی
را بپذیرد،
یک «عبارت
عددی» (<expr>) را
نیز
همانطور
که در بالا
تعریف شد
خواهد
پذیرفت.
گاهی یک
واحد (<unit>) در
ادامه با
عدد یا
عبارت عددی
همراه است،
که در این
حالت عدد یا
عبارت عددی
میتواند
با پرانتز
گرد محصور
شود (یا با یک
<space> از واحد
جدا شود)،
همانطور
که در
مثالهای
زیر نشان
داده شده
است.
-----examples:
ArrowShape(3mm, 20,40)
var h=4
ArrowShape(h mm, 20, 40)
ArrowShape((2*h)mm,20,40)
BACKSLASH \
یک بکاسلش
آغازین
بدون فاصله
پس از آن
نشان
میدهد که
بخشی از یک
دستور PiCTeX، TeX یا
LaTeX است، که در
این صورت mathsPIC
صرفاً تمام
خط را عیناً
به فایل
خروجی کپی
میکند. یک
بکاسلش
آغازین که
پس از آن یک
یا چند
فاصله
باشد، باعث
میشود mathsPIC
تمام خط را
عیناً به
فایل خروجی
کپی کند اما
بدون
بکاسلش.
استفاده
از بسته رنگ
(USING THE COLOR PACKAGE)
بسته
استاندارد
COLOR را
میتوان
همراه با mathsPIC
استفاده
کرد، اما
توجه داشته
باشید که
بارگذاری
بسته COLOR پس از
بسته mathsPIC
بسیار مهم
است.
بهتر است یک
نماد توضیح %
در انتهای
دستورات LaTeX و TeX
قرار دهید
تا
فاصلههای
خالی
انتهایی
محدود
شوند.
در صورت
هرگونه
سرایت رنگ
از دیاگرام
به متن پس از
آن (این مورد
در
پیادهسازیهای
اولیه TeX یک
مشکل بود)،
استفاده از
دستور \normalcolor را
به عنوان یک
جداکننده
در محیط
\beginpicture...\endpicture مد نظر
قرار دهید.
==============================
ARROWSHAPE
این دستور
شکل نوک
پیکان را
تعریف
میکند و
امکان
سفارشیسازی
نوک
پیکانهای
مختلف را
فراهم
میسازد.
شکل پیشفرض پیکان معادل دستور Arrowshape(2mm,30,40) است. این شکل پیشفرض نوک پیکان را میتوان با استفاده از دستور Arrowshape(default) بازنشانی کرد، همانطور که در مثال زیر نشان داده شده است.
-----syntax:
arrowshape(<length>[units], <angledeg>, <angledeg>)
-----examples:
Arrowshape(4mm,30,60)
drawArrow(AB)
Arrowshape(default)
==============================
beginLOOP...endLOOP
این محیطی
است که یک
بلوک کد را
به تعداد
دفعات
مشخصشده
تکرار
میکند.
-----syntax:
beginLoop <expr>
...
endLoop
-----notes:
بلوک کدی که
در داخل این
محیط قرار
دارد، به
تعداد <expr>
بار دریافت
میشود.
-----example:
beginLoop 5
...
endLoop
==============================
beginSKIP...endSKIP
این یک
«محیط» است
که دستورات
درون آن
اجرا
نمیشوند.
این محیط در
زمان توسعه
برای
آزمایش
دستورات به
صورت مجزا و
مستثنی
کردن سایر
دستورات
مفید است.
==============================
CONST
دستور const
برای تعریف
ثابتهای
نردهای
(اسکالر)
استفاده
میشود.
توجه داشته
باشید که
نام یک ثابت
باید با یک
حرف تکی
(بزرگ یا
کوچک) شروع
شود و
میتواند
حداکثر تا
سه رقم به
دنبال آن
داشته باشد.
توجه داشته
باشید که
ثابتها،
متغیرها و
نقاط
ساختار
نامگذاری
یکسانی
دارند و یک
ثابت
میتواند
همنام با
یک نقطه
باشد
(بنابراین
پیشنهاد
میکنیم
برای نقاط
از حروف
بزرگ و برای
متغیرها و
ثابتها از
حروف کوچک
استفاده
شود).
آرگومان
اسکالر
میتواند
هر عبارت
عددی باشد.
مقادیر
جدید را
نمیتوان
مجدداً به
نامهای
ثابتِ
موجود
اختصاص داد.
اگر این
اتفاق
بیفتد، mathsPIC یک
پیام خطا
صادر
میکند.
-----syntax:
const name = <expr>
-----examples:
const r = 20, r4 = r3*tan(0.3)
==============================
DashArray
دستور dasharray
تعداد
اختیاری از
آرگومانهای
جفتشده را
میپذیرد
که برای
مشخص کردن
الگوی
خطچین
استفاده
میشوند.
-----syntax
dasharray(d1 , g1 , d2 , g2 , ... )
-----notes
پارامترهای
d طول خطچین
و
پارامترهای
g طول فاصله
خالی بین دو
خطچین
متوالی را
مشخص
میکنند.
تعداد
آرگومانها
باید زوج
باشد. اگر از
یک متغیر یا
عبارت
استفاده
میشود،
باید با یک
<space> یا با
پرانتزهای
گرد ( ) از
واحد جدا
شود،
همانطور
که در زیر
نشان داده
شده است.
-----example
dasharray(6pt, 2pt, 1pt, 2pt)
var d=2
dasharray(6pt, 2pt, 1pt, d pt)
dasharray(6pt, 2pt, 1pt, (d)pt)
dasharray(6pt, 2pt, 1pt, (3*d)pt)
==============================
DrawAngleArc
این دستور
یک کمان در
زاویه
مشخصشده،
در فاصله <radius>
از زاویه
رسم میکند.
زاویه
میتواند
<internal> (داخلی،
کمتر از ۱۸۰
درجه) یا <external>
(خارجی،
بیشتر از
۱۸۰ درجه)
باشد. جهت
کمان یا <clockwise>
(ساعتگرد)
یا <anticlockwise>
(پادساعتگرد)
است، و این
جهت باید با
ترتیب حروف
مشخصشده
برای زاویه
مطابقت
داشته باشد.
اگر این
چهار
پارامتر از
نظر داخلی
با یکدیگر
سازگار
نباشند،
نتایج عجیب
و
غیرمنتظرهای
ایجاد
خواهد شد.
ترتیب
گزینههای
زاویه/شعاع/داخلی
یا
خارجی/ساعتگرد
یا
پادساعتگرد
حائز اهمیت
است.
پارامتر <radius>
میتواند
هر عبارت
عددی باشد.
-----syntax:
DrawAngleArc{angle(), radius(), external, clockwise}
-----example:
DrawAngleArc{angle(ABC), radius(3), external, clockwise}
var r=3
DrawAngleArc{angle(ABC), radius(r), external, clockwise}
==============================
DrawAngleArrow
این دستور
یک پیکان
منحنی در
زاویه
مشخصشده،
در فاصله <radius>
از زاویه
رسم میکند.
زاویه
میتواند
<internal> (کمتر از
۱۸۰ درجه) یا
<external> (بیشتر از
۱۸۰ درجه)
باشد. جهت
پیکان یا <clockwise>
(ساعتگرد)
یا <anticlockwise>
(پادساعتگرد)
است، و این
جهت باید با
ترتیب حروف
مشخصشده
برای زاویه
مطابقت
داشته باشد.
اگر این
چهار
پارامتر از
نظر داخلی
با یکدیگر
سازگار
نباشند،
نتایج عجیب
و
غیرمنتظرهای
ایجاد
خواهد شد.
ترتیب
گزینههای
زاویه/شعاع/داخلی/ساعتگرد
حائز اهمیت
است.
پارامتر <radius>
میتواند
هر عبارت
عددی باشد.
-----syntax:
DrawAngleArrow{angle(), radius(), external, clockwise}
-----example:
DrawAngleArrow{angle(ABC), radius(3), external, clockwise}
var r=3
DrawAngleArrow{angle(ABC), radius(r), external, clockwise}
==============================
DrawArrow
این دستور
یک یا چند
پیکان رسم
میکند که
دو نقطه را
به هم متصل
میکنند.
جهت پیکان
در جهت
ترتیب
نقاطِ
مشخصشده
است.
-----syntax:
drawArrow(<line> [,<line>] ... )
-----notes:
گزینه طول
فقط
میتواند
به یک پیکان
اشاره
داشته
باشد
-----example:
drawArrow(AB)
drawArrow(FG, HJ)
==============================
DrawCircle
این دستور
دایرهای
را رسم
میکند که
با شعاع و
نام نقطه
مرکز آن
مشخص شده
است. مقدار
<radius>
میتواند
هر عبارت
عددی باشد.
اگر
واحدهای
محورهای X و Y
متفاوت
باشند،
ممکن است
دایرهها
به شکل
نامتعارفی
رسم شوند و
به همین
دلیل mathsPIC
پیامی
هشدارآمیز
در این خصوص
تولید
میکند.
-----syntax:
DrawCircle(<center>, <radius>)
-----examples:
drawCircle(C2,5)
drawCircle(C2,r2)
drawCircle(C2,r2/tan(1.3))
drawCircle(C2,AB)
==============================
DrawCircumcircle
این دستور
دایره
محیطی یک
مثلث را رسم
میکند.
-----syntax:
DrawCircumcircle(<triangle>)
-----example:
drawCircumcircle(ABC)
==============================
DrawCurve
این دستور
یک منحنی
درجه دوم
هموار را از
میان سه
نقطه به
ترتیب
نقاطِ
مشخصشده
رسم میکند.
توجه داشته
باشید که
منحنیهای
رسمشده با
استفاده از
این دستور
برای
اجتناب از
نواحی بدون
خطِ مرتبط
با نقاط،
قطع
نمیشوند.
-----syntax:
DrawCurve(<point><point><point>)
-----example:
drawCurve(ABC)==============================
DrawExcircle
این دستور
دایرهٔ
برمحاطی (excircle)
مماس بر یک
ضلع یک مثلث
را رسم
میکند.
-----نحو:
DrawExcircle(<triangle>, <side>)
-----مثال:
drawExcircle(ABC, BC)
==============================
DrawIncircle
این دستور
دایرهٔ
محاطی
داخلی (incircle) یک
مثلث را رسم
میکند.
-----نحو:
DrawIncircle(<triangle>)
-----مثال:
drawIncircle(ABC)
==============================
DrawLine
این دستور
خطی را رسم
میکند که
دو یا چند
نقطه را به
یکدیگر
متصل
میکند.
برای تغییر
ضخامت از
دستور Linethickness
استفاده
کنید. این
دستور برای
خطوط افقی و
عمودی از
دستور \putrule در PiCTeX
و برای سایر
جهات از
دستور \plot
استفاده
میکند.
-----نحو:
DrawLine( <points> [, <points>] )
-----نکات:
<points> هر توالی
از دو یا چند
نام نقطه
است.
<expr> هر عبارت
عددی است.
خطوط به
همان
ترتیبی که
مشخص
شدهاند
رسم
میشوند.
خطوط با
کاما از
یکدیگر جدا
میشوند.
-----مثالها:
drawline(AB)
drawline(BCDE)
drawline(FG, HJK, PQRST)
==============================
DrawPerpendicular
این دستور
خط عمود از
یک نقطه به
یک خط را رسم
میکند.
-----نحو:
DrawPerpendicular(<point>, <line)
-----مثال:
drawPerpendicular(P,AB)
==============================
DrawPoint
این دستور
نماد نقطه
(point-symbol) را در
مکان نقطه
رسم میکند.
برای
جداسازی
نام نقاط
نباید از
کاما
استفاده
شود. نماد
پیشفرض
نقطه
-----نحو:
DrawPoint(<point> [<point> ..])
-----مثالها:
drawpoint(T4)
drawpoint(ABCDEF)
drawpoint(P1 P2 P3 P4)
==============================
DrawRightangle
این دستور
نماد
استاندارد
زاویهٔ
قائمه را در
زاویهٔ
داخلی
مشخصشده و
با
اندازهای
که توسط <expr>
تعیین شده
رسم
میکند.
-----نحو:
DrawRightangle(<angle>, <expr>)
-----نکات:
مقدار <expr>
میتواند
هر عبارت
عددی باشد.
-----مثال:
drawRightangle(ABC,3)
drawRightangle(ABC,PQ)
var d=5
drawRightangle(ABC,d)
==============================
DrawSquare
این دستور
مربعی را
رسم میکند
که با ضلع آن
و نام نقطهٔ
مرکز آن
تعریف شده
است. مقدار
<sidelength>
میتواند
هر عبارت
عددی باشد.
-----نحو:
DrawSquare(<centerpoint>, <sidelength>)
-----مثالها:
drawSquare(P,5)
var s2=3, j=2
drawSquare(P,s2)
drawSquare(P, s2*4/(3*j))
drawSquare(P,AB)
==============================
DrawThickArrow
این دستور
یک یا چند
پیکان ضخیم
رسم میکند
که دو نقطه
را به هم
متصل
میکنند.
جهت پیکان
مطابق با
ترتیب نقاط
مشخصشده
است. شکل نوک
پیکان توسط
دستور ArrowShape
کنترل
میشود.
-----نحو:
drawThickArrow(<line> [,<line>,...])
-----مثالها:
drawThickarrow(BC)
drawThickarrow(PQ, RS)
==============================
DrawThickLine
این دستور
یک یا چند خط
ضخیم رسم
میکند که
دو نقطه را
به هم متصل
میکنند.
جهت خط
مطابق با
ترتیب نقاط
مشخصشده
است. برای
تغییر
ضخامت خط از
دستور Linethickness
استفاده
کنید.
-----نحو:
drawThickLine(<line> [,<line>,...])
-----مثالها:
drawThickline(BC)
drawThickline(PQ, RS)
==============================
InputFile
این دستور
یک فایل
متنی ساده
حاوی
دستورهای mathsPIC
را وارد
میکند. در
صورت
تمایل،
فایل
میتواند
چندین بار
وارد شود که
در این حالت
این دستور
مانند یک
حلقهٔ DO--LOOP عمل
میکند.
مقدار <loopnumber>
میتواند
هر عبارت
عددی باشد.
اگر <loopnumber> یک
عدد صحیح
نباشد، mathsPIC
مقدار آن را
به سمت
پایین به
نزدیکترین
عدد صحیح
گرد میکند.
همچنین
دستورهای beginLOOP
... endLOOP را
ببینید.
-----نحو:
inputFile[*](<filename>)[<loopnumber>]
-----نکات:
دستور inputfile*
برای وارد
کردن یک
فایل
بهصورت
عین به عین
(verbatim) به کار
میرود؛
یعنی فایلی
بدون هیچ
دستور mathsPIC،
برای مثال
فایلی که
فقط شامل
دستورهای PiCTeX
یا نقاط
داده برای
رسم و غیره
است. توجه
داشته
باشید که
دستور inputfile*
گزینهٔ <loopnumber>
را ندارد.
همچنین
توجه داشته
باشید که PiCTeX
به یک تعداد
فرد (ODD) از
نقاط نیاز
دارد.
-----مثالها:
inputFile(myfile.dat)[4]
inputFile*(mycurvedata.dat)
==============================
LineThickness
این دستور
یک ضخامت خط
خاص را
تعیین
میکند.
دستور linethickness(default)
ضخامت خط
فعال را به
مقدار
پیشفرض 0.4pt
بازمیگرداند.
مقدار فعلی
ضخامت خط (در
واحدهای
جاری) را
میتوان با
استفاده از
دستور var به
دست آورد
(این امر
هنگام رسم
اشکال با
خطوط ضخیم
میتواند
مفید باشد).
-----نحو:
LineThickness(<expr><units>)
LineThickness(default)
var t = _linethickness_
-----نکات:
این دستور
همچنین قلم
را روی cmr و plotsymbol
را روی \CM .
قرار
میدهد و
همچنین
ضخامت خط را
برای رسم
خطوط افقی و
عمودی
تنظیم
میکند. درج
صفر قبل از
ممیز برای
کسرهای
اعشاری
کوچکتر از
یک حائز
اهمیت است.
-----مثالها:
linethickness(2pt)
var t=3
linethickness((t)pt)
lineThickness((2*t)pt)
linethickness(default)
var t = _linethickness_
-----هشدار:
توجه داشته
باشید که یک
دستور
مشابه در PiCTeX
با همین نام
(اما با نحوی
متفاوت)
وجود دارد.
==============================
PAPER
ناحیهٔ رسم
را بر اساس
گزینههای
units()، xrange()، yrange()، axes() و ticks()
تعریف
میکند.
آرگومان units()
باید شامل
یک مقدار
عددی و یک
واحد معتبر
طول TeX شامل mm،
cm، pt، pc(pica)، in(inch)، bp(big
point)، dd(didot)، cc(cicero) و sp(scaled point)
باشد.
محورهای X و Y
میتوانند
واحدهای
متفاوتی
داشته
باشند (مثال
دوم در زیر
را ببینید).
آرگومانهای
XYTBLR در axes() به
محورهای X و Y
و محورهای
بالا (Top)،
پایین (Bottom)، چپ
(Left) و راست (Right)
اشاره
دارند. قرار
گرفتن یک * پس
از یکی از
محورها،
علامتهای
درجهبندی
(ticks) را روی آن
محور
غیرفعال
میکند.
محورهای X و Y
از صفرها
عبور
میکنند.
-----مثالها:
paper{units(1cm),xrange(0,10),yrange(0,10)}
paper{units(2cm,1cm),xrange(0,10),yrange(0,10),axes(LB)}
paper{units(1mm),xrange(0,100),yrange(0,100),axes(XY)}
paper{units(1cm),xrange(-5,5),yrange(-5,5),axes(LRTBXY),ticks(1,1)}
paper{units(1cm),xrange(-5,5),yrange(-5,5),axes(LRT*B*)}
==============================
POINT
یک نقطهٔ
جدید را با
تخصیص
مختصات به
یک نام
نقطهٔ جدید
تعریف
میکند.
گزینهٔ *
مختصات را
دوباره به
نام یک
نقطهٔ
موجود
تخصیص
میدهد.
-----نحو:
POINT[*](<name>){<point>}[symbol=<chars>,
radius=<expr>]
POINT[*](<name>){<location>}[symbol=<chars>,
radius=<expr>]
-----نکات:
<name> یک حرف
ابتدایی به
همراه
حداکثر سه
رقم
انتهایی
<chars> هر رشتهٔ TeX
مجاز در یک \hbox{}
<expr> هر عبارت
عددی
گزینهٔ polar(r,theta)
بهطور
پیشفرض از
رادیان
برای
زاویهٔ theta
استفاده
میکند.
برای کار بر
حسب درجه
باید <deg> به
آن اضافه
شود، مانند:
polar(r,theta deg). میتوان
از <direction()> و <directiondeg()>
برای
جایگزینی theta
استفاده
کرد. توجه
داشته
باشید که
عبارت vector(AB) به
معنای
استفاده از
همان (r, theta)
مربوط به AB
است.
-----مثالها:
point(A){5,5}
point(B2){22,46}[symbol=$\odot$]
point(B2){22,46}[symbol=circle(2),radius=5]
var r=3
point(B2){22,46}[symbol=square(3),radius=r]
point(B123){22,46}[radius=5]
point(D2){B2, shift(5,5)}
var s = 3
point(D2){B2, shift(2*s,4*s)}
point(D3){D2, polar(6,32 deg)}
point(D4){D2, polar(6,1.2 rad)}
point(D4){D2, polar(6, direction(AB))} %% radians by default
point(D4){D2, polar(6, directiondeg(AB) deg)}
point(G2){Q, rotate(P, 23 deg)}
point(G2){Q, vector(AB)}
point(D2){intersection(AB,CD)}
point(F){PointOnLine(AB,5.3)}
point(G){perpendicular(P,AB)}
point(H){circumcircleCenter(ABC)}
point(J){incircleCenter(ABC)}
point(K){excircleCenter(ABC,BC)}
point*(A){6,3}
point*(P){Q}
point*(B){B, shift(5,0)}
point*(P){xcoord(J),ycoord(K)}
==============================
PointSymbol
این دستور
امکان
تغییر نماد
پیشفرض
نقطه \bullet (با
شعاع بدون
خط صفر) را
فراهم
میکند.
دستور PointSymbol
بهویژه
زمانی مفید
است که
مجموعهای
از نقاط از
یک نماد
نقطهٔ
یکسان
استفاده
میکنند،
برای مثال
هنگام رسم
نمودارها.
نماد نقطه
را میتوان
با استفاده
از دستور
PointSymbol(default) به
مقدار
پیشفرض \bullet
بازنشانی
کرد.
-----نحو:
PointSymbol(<symbol>, <line-free-radius>)
PointSymbol(default)
-----نکات:
دستور PointSymbol فقط
بر
دستورهای point
بعدی تأثیر
میگذارد.
کروکشهٔ
اختیاری در
دستور point،
اولویت
بالاتری
نسبت به
دستور PointSymbol
دارد و آن را
لغو
میکند.
-----مثالها:
PointSymbol($\odot$, 0.7)
PointSymbol(default)
==============================
SYSTEM
این دستور
به کاربر
اجازه
میدهد به
خط فرمان
دسترسی
داشته باشد
و دستورهای
استاندارد
لینوکس را
اجرا کند. یک
کاربرد مهم
این دستور،
اجرای یک
برنامهٔ Perl
است.
-----نحو:
System("<command>")
-----نکات:
رشتهٔ <command>
باید درون
گیومه
باشد.
-----مثال:
system("dir > mydir-listing.txt")
system("perl myperlprogram.pl")
==============================.B SHOW.... این دستور باعث میشود mathsPIC مقدار یک محاسبه یا پارامتر مشخصشده را برگرداند؛ برای نمونه، مقدار یک زاویه خاص یا طول یک پارهخط. نتیجه در فایل خروجی به صورت یک خط توضیح (کامنت) نمایش داده میشود. این قابلیت امکان تنظیم دستورات mathsPIC را با توجه به محاسبات فراهم میکند. در حال حاضر پنج دستور از این نوع به شرح زیر وجود دارد:
-----نحو (syntax):
showLength(AB)
showAngle(ABC) % زاویه را
برحسب
رادیان
برمیگرداند
showAngledeg(ABC) % زاویه را
برحسب درجه
برمیگرداند
showArea(ABC)
showPoints
showVariables
==============================
TEXT این دستور یک رشته متنی (text-string) را در یک مکان مشخص قرار میدهد. بهطور پیشفرض، متن به صورت عمودی و افقی در نقطه تعیینشده تراز وسط قرار میگیرد. به صورت اختیاری، متن میتواند با استفاده از ترکیبهای مناسب گزینههای موقعیت (position) در PiCTeX شامل l، t، r، B و b نسبت به یک نقطه قرار گیرد تا به ترتیب لبه چپ (l)، لبه راست (r)، لبه بالا (t)، خط کرسی یا Baseline (B) و لبه پایین (b) کادر متنی با مکان نقطه همتراز شوند.
به یاد داشته باشید که یکای پیشفرض برای آرگومان زاویه در عبارت polar() رادیان است؛ بنابراین اگر میخواهید با درجه کار کنید، حتماً باید deg را اضافه کنید.
-----نحو (syntax):
text(<string>){<location>}[<position options>]
text(<string>){<pointname>, shift(<x>,<y>)}[]
text(<string>){<pointname>,
polar(<r>,<angle>[rad])}[]
-----مثالها (examples):
text(A){5,6}
text($A_1$){A1, shift(2, 2)}
text(Z2){Z2, shift(5, -5)}[tr]
text(Z3){Z2, polar(5, 20 deg)}[Br]
text(Z4){Z2, polar(5, 1.34 rad)}
text(\framebox{Z5}){Z5}
==============================
VAR دستور var برای تعریف متغیرهای نردهای (اسکالر) به کار میرود و میتواند هر عبارت عددی باشد. نام متغیر باید با یک تکحرف (بزرگ یا کوچک) آغاز شود و میتواند حداکثر تا چهار رقم پس از آن داشته باشد. اگر به نام متغیر دقیقتری نیاز است، یک راهکار ساده استفاده از ماکروی mathsPIC است---چرا که هر رشتهای را میتوان از طریق ماکروها تخصیص داد (برای جزئیات درباره ماکروها به ابتدای این فصل مراجعه کنید).
توجه داشته باشید که متغیرها، ثابتها و نقاط ساختار نامگذاری یکسانی دارند و یک متغیر میتواند نامی مشابه یک نقطه داشته باشد (بنابراین پیشنهاد میکنیم نقاط دارای حروف بزرگ و متغیرها و ثابتها دارای حروف کوچک باشند). مقادیر جدید را میتوان مجدداً به نامهای متغیرهای موجود تخصیص داد؛ با این حال، هنگام رخ دادن این اتفاق، mathsPIC هیچ پیام هشداری برای برجسته کردن این موضوع صادر نمیکند.
اگر دریافت هشدار در صورت تخصیص مجدد تصادفی یک متغیر بالقوه مهم باشد، باید به جای آن استفاده از دستور const را در نظر گرفت (زیرا mathsPIC در صورت تخصیص مجدد یک مقدار ثابت، پیام خطا صادر میکند).
-----نحو (syntax):
var <name> = <expr>
-----نکات (notes):
علاوه بر
توابع
ریاضی،
توابع mathsPIC که
میتوانند
با دستور var
استفاده
شوند
عبارتند
از:
angle(<three-points>) % زاویه
را برحسب
رادیان
برمیگرداند
angledeg(<three-points>) % زاویه
را برحسب
درجه
برمیگرداند
area(<three-points>)
xcoord(<point>)
ycoord(<point>)
direction(<two-points>) % جهت
زاویهای
را برحسب
رادیان
برمیگرداند
directiondeg(<two-points>) % جهت
زاویهای
را برحسب
درجه
برمیگرداند
-----مثالها (examples):
var r = 20, r4 = r3*tan(0.3), j = (r*2e3)**2, r5 = AB
var e = _e_, p1 = _Pi_
var t = _linethickness_ % ضخامت
خط را در
یکاهای
جاری
برمیگرداند
var g137 = angle(ABC)
%(پیشفرض:
زاویه را
برحسب
رادیان
برمیگرداند)
var g = angledeg(ABC) % زاویه
برحسب درجه
var h = area(ABC)
var x2 = xcoord(A), y2 = ycoord(A)
var m5 = 12 rem 3 %
باقیمانده
پس از تقسیم
بر ۳
var r1 = direction(PQ) % برحسب
رادیان
var d1 = directiondeg(PQ)
==============================
همچنین ببینید (SEE ALSO)
دفترچه راهنما و مثالهای بسته mathsPIC
گزارش باگها (BUGS)
لطفاً باگها را به Dick Nickalls (dick [AT] nickalls [dot] org) یا به Apostolos Syropoulos گزارش دهید.
| April 26, 2010 | mathsPIC perl version |