با سلام
این کار یک روش ساده دارید که همان رسم یکسری arc و نقطه گذاری به صورت دستی است، اما یک روش اصولی و زیبا دارد که من سعی می کنم در ادامه روش دوم را بگویم که بتوانید برای بار بعدی نیز از آن استفاده کنید. روش یاد شده را گام به گام در ادامه تشریح می کنم.
الف) بسته tikz را فراخوانی کنید، و کتابخانه intersections را نیز فراخوانی کنید، یعنی قبل از \begin{document} بنویسید:
ب) در ابتدا یک محیط tikzpicture به صورت زیر تعریف کنید.
ج) تعدادی خط موازی تعریف کنید، که شما قبلا این کار را کرده اید.
در ضمن دقت کنید که با دستور name path به هر خط یک اسم دلخواه تخصیص داده ام.
د) من دو بیضی به صورت زیر تعریف کردم.
ه) در این مرحله از کتابخانه intersections استفاده می کنم بدین صورت که به محل تلاقی هر یک از بیضی ها با خطوط یک node تخصیص می دهم.
و) در این گام همان طور که در تصویر اتچ شده در شکل شما در پست قبلی بود، یک نقطه بین تلاقی بین دو منحنی می گذارم.
ز) در مرحله بعدی از نقطه محل تلاقی بیضی ellips1 با هر یک از خطوط linex به محل تلاقی ellips2 با همان خط linex یک curve با دستورات زیر رسم می کنم.
ح) برای محو شدن بیضی ها کافی است به جای رنگ green بنویسید draw=none یعنی
و) البته در شکل شما اگر دقت کنید هر کمان خطوط را تا حدی رد کرده است، برای این کار دستورات رسم کمان را باید به صورت زیر بنوسید.
ز) برای رسم کمان ها من یک خط موازی ششم نامریی draw=none در نظر گرفتم بیضی ها را قطع دادم، یعنی این طوری
هر یک از فایل های اتچ شده را شما باید بتوانید به صورت normal کامپایل کنید اگر این اتفاق نیافتاد حتما مشکل از TexLive2014 نبودن و عدم بروزبودن بسته ها است.
امیدوارم مشکل حل شده باشد اگر سوال دارید دوستان هستند چون من به علت مسافرت تا یک هفته نیستم.
باتشکر
این کار یک روش ساده دارید که همان رسم یکسری arc و نقطه گذاری به صورت دستی است، اما یک روش اصولی و زیبا دارد که من سعی می کنم در ادامه روش دوم را بگویم که بتوانید برای بار بعدی نیز از آن استفاده کنید. روش یاد شده را گام به گام در ادامه تشریح می کنم.
الف) بسته tikz را فراخوانی کنید، و کتابخانه intersections را نیز فراخوانی کنید، یعنی قبل از \begin{document} بنویسید:
کد: [انتخاب]
\usepackage{tikz}
\usetikzlibrary{intersections}
ب) در ابتدا یک محیط tikzpicture به صورت زیر تعریف کنید.
کد: [انتخاب]
\begin{tikzpicture}
\end{tikzpicture}
کدهایی که در ادامه می آید را باید در این محیط بنویسید.ج) تعدادی خط موازی تعریف کنید، که شما قبلا این کار را کرده اید.
کد: [انتخاب]
\draw[gray,very thick,name path=line1] (-5,0) -- (5,0) node[at end,above]{$v_{1}$};
\draw[gray,very thick,name path=line2] (-5,-1) -- (5,-1)node[at end,above]{$v_{2}$};
\draw[gray,very thick,name path=line3] (-5,-2) -- (5,-2)node[at end,above]{$v_{3}$};
\draw[gray,very thick,name path=line4] (-5,-3) -- (5,-3)node[at end,above]{$v_{4}$};
\draw[gray,very thick,name path=line5] (-5,-4) -- (5,-4)node[at end,above]{$v_{5}$};
فقط دقت کنید که من یک قسمت کد: [انتخاب]
node[at end,above]{$v_{1}$}
به کار شما اضافه کردم. این کار موجب می شود که متن یاد شده بین آکولاد مثلا $v_{5}$ در انتهای خط متناظرش ظاهر شود. فقط دقت کنید که چون این دستور در ادامه دستور رسم draw آمده و بین آن ها ; وجود ندارد پس \ قبل از node نگذارید و گرنه Latex خطا می گیرد.در ضمن دقت کنید که با دستور name path به هر خط یک اسم دلخواه تخصیص داده ام.
د) من دو بیضی به صورت زیر تعریف کردم.
کد: [انتخاب]
\draw[green,rotate=-55,name path=ellips1] (3,2.5) ellipse (9cm and 2cm);
\draw[green,rotate=55,name path=ellips2] (-3,2.5)ellipse (9cm and 2cm);
دقت کنید که با دستور name path به هر کدام از بیضی ها یک اسم دلخواه دادم. واضح است که کد: [انتخاب]
(3,2.5) ellipse (9cm and 2cm)
اولی مرکز بیضی و دومی به ترتیب شعاع محور x و y در بیضی است. در ضمن با rotate=55 بیضی را به اندازه زاویه دلخواه به درجه چرخاندم.ه) در این مرحله از کتابخانه intersections استفاده می کنم بدین صورت که به محل تلاقی هر یک از بیضی ها با خطوط یک node تخصیص می دهم.
کد: [انتخاب]
\node[name intersections={of=ellips1 and line1}](A1) at(intersection-1){};
\node[name intersections={of=ellips2 and line1}](B1) at(intersection-1){};
\node[name intersections={of=ellips1 and line2}](A2) at(intersection-1){};
\node[name intersections={of=ellips2 and line2}](B2) at(intersection-1){};
\node[name intersections={of=ellips1 and line3}](A3) at(intersection-1){};
\node[name intersections={of=ellips2 and line3}](B3) at(intersection-1){};
\node[name intersections={of=ellips1 and line4}](A4) at(intersection-1){};
\node[name intersections={of=ellips2 and line4}](B4) at(intersection-1){};
\node[name intersections={of=ellips1 and line5}](A5) at(intersection-1){};
\node[name intersections={of=ellips2 and line5}](B5) at(intersection-1){};
دقت کنید که کد: [انتخاب]
name intersections={of=ellips1 and line1}
یعنی به tikz می گوید محل تلاقی شکل با نام ellips1 و line1 را بدست آور. بعد از بدست آوردن این محلهای تلاقی tikz آن ها را در متغیرهایی به نام intersection-1 ذخیره می کند. پر واضح است که اگر دو محل تلاقی وجود داشته باشد یک intersection-1 داریم و یک intersection-2. در ضمن یک node هم برای محل تلاقی دو بیضی در نظر گرفته ام، به صورت:کد: [انتخاب]
\node[name intersections={of=ellips1 and ellips2}](Center) at(intersection-4){};
همان طور که در فایل اتچ شده مشاهده می شود این دو بیضی چهار نقطه تلاقی دارد که نقطه چهارمش را ما می خواهیم، چرا؟ پاسخ: به شکل نگاه کنید.و) در این گام همان طور که در تصویر اتچ شده در شکل شما در پست قبلی بود، یک نقطه بین تلاقی بین دو منحنی می گذارم.
کد: [انتخاب]
\draw[fill=red](Center)circle(.6mm);
که Center همان node محل تلاقی دو بیضی است.ز) در مرحله بعدی از نقطه محل تلاقی بیضی ellips1 با هر یک از خطوط linex به محل تلاقی ellips2 با همان خط linex یک curve با دستورات زیر رسم می کنم.
کد: [انتخاب]
\draw[-] (B1) to[bend right=20] (A1);
\draw[-] (B2) to[bend right=20] (A2);
\draw[-] (B3) to[bend right=20] (A3);
\draw[-] (B4) to[bend right=20] (A4);
\draw[-] (B5) to[bend right=20] (A5);
برای درک بهتر به تعریف nodeهای به نام A1 تا A5 و B1 تا B5 مراجعه کنید. در ضمن لازم به ذکر است که bend right=20 زاویه خروج خم را نشان می دهم هرچه این زاویه کمتر خم خوابیده تر خواهد بود.ح) برای محو شدن بیضی ها کافی است به جای رنگ green بنویسید draw=none یعنی
کد: [انتخاب]
\draw[draw=none,rotate=-55,name path=ellips1] (3,2.5) ellipse (9cm and 2cm);
\draw[draw=none,rotate=55,name path=ellips2] (-3,2.5)ellipse (9cm and 2cm);
این طوری بیضی ها محو می شود و فقط کمانها می ماند.و) البته در شکل شما اگر دقت کنید هر کمان خطوط را تا حدی رد کرده است، برای این کار دستورات رسم کمان را باید به صورت زیر بنوسید.
کد: [انتخاب]
\draw[-] ($ (B1)+(-0.4,.2)$) to[bend right=40] ($(A1)+(0.4,.2)$);
\draw[-] ($ (B2)+(-0.4,.2)$) to[bend right=30] ($(A2)+(0.4,.2)$);
\draw[-] ($ (B3)+(-0.4,.2)$) to[bend right=30] ($(A3)+(0.4,.2)$);
\draw[-] ($ (B4)+(-0.4,.2)$) to[bend right=30] ($(A4)+(0.4,.2)$);
\draw[-] ($ (B5)+(-0.4,.2)$) to[bend right=30] ($(A5)+(0.4,.2)$);
برای این که تفاوت کار را مشاهده کنید، فایل s2.pdf را نگاه کنید. البته اگر این دستورات را بزنید در ابتدا با خطا مواجه خواهید شد، چرا که برای این ها باید کتابخانه calc را هم اضافه کنید پس فراخوانی tikz شما به صورت زیر خواهد شد.کد: [انتخاب]
\usepackage{tikz}
\usetikzlibrary{intersections,calc}
در واقع کار خاصی نکردم، فقط نقاط را کمی به بالا و سمت های چپ و راست شیفت دادم، و برای زیباتر شدن زاویه خروج از خط را نیز بیشتر گرفتم.ز) برای رسم کمان ها من یک خط موازی ششم نامریی draw=none در نظر گرفتم بیضی ها را قطع دادم، یعنی این طوری
کد: [انتخاب]
\draw[draw=none,very thick,name path=line6] (-5,-5) -- (5,-5);
\node[name intersections={of=ellips1 and line6}](A6) at(intersection-1){};
\node[name intersections={of=ellips2 and line6}](B6) at(intersection-1){};
سپس برای رسم دو کمان بزرگ این گونه عمل کردم.کد: [انتخاب]
\draw [xshift=4cm,-latex] plot [smooth] coordinates { (Center) (A1) (A2) (A3) (A4) (A5) (A6)};
\draw [xshift=4cm,-latex] plot [smooth] coordinates { (Center) (B1) (B2) (B3) (B4) (B5) (B6)};
فایل S3 خروجی نهایی مدنظر شما است.هر یک از فایل های اتچ شده را شما باید بتوانید به صورت normal کامپایل کنید اگر این اتفاق نیافتاد حتما مشکل از TexLive2014 نبودن و عدم بروزبودن بسته ها است.
امیدوارم مشکل حل شده باشد اگر سوال دارید دوستان هستند چون من به علت مسافرت تا یک هفته نیستم.
باتشکر