2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Рисунок, как в TeXe
Сообщение17.05.2012, 16:34 


21/06/11
141
Здравствуйте
Хотелось бы найти альтернативу PSTricks в виде GUI программы.
Чтобы я мог в ней довольно быстро нарисовать нужный мне чертёж и чтобы он выглядел примерно, как этот, сделанный на PSTricks:
Изображение

Просто я посмотрел .tex файл
код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
\documentclass[12pt]{article}% by Jean-Côme Charpentier and Herbert Voss
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[dvips,a4paper,landscape,margin=1cm]{geometry}
\usepackage{lmodern,graphicx}

\usepackage{pst-slpe,pstricks-add}
\newpsstyle{magenta40}{fillstyle=solid,fillcolor=magenta!40}
\newpsstyle{blue40}{fillstyle=solid,fillcolor=blue!60}
\newpsstyle{Blackball}{fillstyle=ccslope,slopebegin=white,slopeend=black,
    slopecenter={0.6 0.6}}
\newpsstyle{Blueball}{fillstyle=ccslope,slopebegin=white,slopeend=blue,
    slopecenter={0.6 0.6}}
\newpsstyle{Redball}{fillstyle=ccslope,slopebegin=white,slopeend=red,
    slopecenter={0.6 0.6}}
% inclined plane

\newcommand*\ChronoSlope{30 }
\newcommand*\ChronoSlopeN{180  \ChronoSlope sub }
% Length of inclined plane (that is, the ball course!)
\newcommand*\ChronoLength{15 }
\newcommand*\rBall{0.5 }
\makeatletter
\pst@dima=\rBall pt
\pst@dimb=0.5\pst@dima
\edef\rBallinner{\strip@pt\pst@dimb}
\makeatother
\newcommand*\mass{1 }

\def\Acceleration{9.81 \ChronoSlope sin mul }
\def\AccelerationRot{\Acceleration 5 mul 7 div }
\def\S#1{   % way as function of time, returns x y
  0.5 \Acceleration mul #1 dup mul mul     % S(t)
  dup \ChronoSlope cos mul                 % Sx
  exch \ChronoSlope sin mul neg \CVL add } % Sy  
\def\Srot#1{   % way as function of time, returns x y
  0.5 \AccelerationRot mul #1 dup mul mul     % S(t)
  dup \ChronoSlope cos mul                 % Sx
  exch \ChronoSlope sin mul neg \CVL add } % Sy  

\def\tEnd{2 \ChronoLength mul \Acceleration div sqrt }
\def\tEndRot{2 \ChronoLength mul \AccelerationRot div sqrt }

\newcommand*{\CHL}{\ChronoSlope cos \ChronoLength mul }% Chrono Horizontal Length
\newcommand*{\CVL}{\ChronoSlope sin \ChronoLength mul }% Chrono Vertical Length

\begin{document}

%\resizebox{\linewidth}{!}{%
\psset{unit=0.8}
\begin{pspicture}(-1,-1)(14,10.5)
  \pspolygon[style=magenta40](0,0)(!\CHL 0)(!0 \CVL)\psline(!\CHL 0)(!\CHL 2 add 0)
  \rput[rt](13,8){\large\textbf{A gliding ball}}
  \multido{\nt=0+0.25}{10}{% Chronophotography (one shot per 1/4 second)
    \rput(! \S{\nt} ){%
      \pscircle[style=Blackball](!90 \ChronoSlope sub cos \rBall mul
                                  90 \ChronoSlope sub sin \rBall mul){\rBall}}
    \psline[linestyle=dashed]{*-}(! \S{\nt} )(! \S{\nt} pop -0.2)
  }% end of multido
  \rput(! \S{2.5} pop 0 ){\pscircle[style=Blackball](0,\rBall){\rBall}}
  \psline[arrowscale=2]{->}(! \S{2.5} pop \rBall )(! \S{2.5} pop 1 add \rBall )
  \rput{-\ChronoSlope}(! \S{2.25} ){%
    \psline[arrowscale=2]{->}(! 0 90 \ChronoSlope add sin \rBall mul)
                             (! 1 90 \ChronoSlope add sin \rBall mul)}
  \psset{linewidth=0.2pt,tbarsize=5mm,arrowscale=2,arrows=|<->|}
  \pcline(-0.75,0)(!-0.75 \CVL)  \ncput*[nrot=:U]{length\,$\cdot\sin\alpha$}
  \pcline(0,-0.75)(! \CHL -0.75) \ncput*{length\,$\cdot\cos\alpha$}
  \rput{-\ChronoSlope}%
     (!\rBall 4 mul \ChronoSlope sin mul
       \CVL \rBall 4 mul \ChronoSlope cos mul add)%
       {\pcline(0,0)(\ChronoLength,0)\ncput*{length=15\,m}}
  \psarcn[arrows=<-](!\CHL 0){3}{180}{!\ChronoSlopeN}
  \uput*{2cm}[165](!\CHL 0){$\alpha=30^\circ$}
\end{pspicture}
\hfill%
\begin{pspicture}(-1,-1)(16,10.5)
  \pspolygon[style=magenta40](0,0)(!\CHL 0)(!0 \CVL)\psline(!\CHL 0)(!\CHL 2 add 0)
  \rput[rt](13,8){\large\textbf{A rolling ball}}
 \multido{\nt=0+0.25}{12}{% Chronophotography (one shot per 1/4 second)
    \rput(! \Srot{\nt} ){%
      \pscircle[style=Blueball](!90 \ChronoSlope sub cos \rBall mul
                                 90 \ChronoSlope sub sin \rBall mul){\rBall}
      \psarcn{->}(!90 \ChronoSlope sub cos \rBall mul
                   90 \ChronoSlope sub sin \rBall mul){\rBallinner}{180}{0}}
    \psline[linestyle=dashed]{*-}(! \Srot{\nt} )(! \Srot{\nt} pop -0.2)
  }% end of multido
  \rput(! \Srot{3} pop 0 ){\pscircle[style=Blueball](0,\rBall){\rBall}}
  \psarcn{->}(!\Srot{3} pop \rBall ){\rBallinner}{190}{10}
  \psline[arrowscale=2]{->}(! \Srot{3} pop \rBall )(! \Srot{3} pop 1 add \rBall )
  \rput{-\ChronoSlope}(! \Srot{2.75} ){%
    \psline[arrowscale=2]{->}(! 0 90 \ChronoSlope add sin \rBall mul)
                             (! 1 90 \ChronoSlope add sin \rBall mul)}
  \psset{linewidth=0.2pt,tbarsize=5mm,arrowscale=2,arrows=|<->|}
  \pcline(-0.75,0)(!-0.75 \CVL)  \ncput*[nrot=:U]{length\,$\cdot\sin\alpha$}
  \pcline(0,-0.75)(! \CHL -0.75) \ncput*{length\,$\cdot\cos\alpha$}
  \rput{-\ChronoSlope}%
     (!\rBall 4 mul \ChronoSlope sin mul
       \CVL \rBall 4 mul \ChronoSlope cos mul add)%
       {\pcline(0,0)(\ChronoLength,0)\ncput*{length=15\,m}}
  \psarcn[arrows=<-](!\CHL 0){3}{180}{!\ChronoSlopeN}
  \uput*{2cm}[165](!\CHL 0){$\alpha=30^\circ$}
\iffalse
  \pstVerb{1 setlinejoin}
  \parametricplot[plotpoints=360]{0}{3}{%
    /THETA \AccelerationRot \rBall div neg RadtoDeg t dup mul mul 0.5 mul 120 sub def
    \Srot{t} /yPosG ED /xPosG ED
    xPosG 90 \ChronoSlope sub cos \rBall mul add \rBall THETA cos mul add
    yPosG 90 \ChronoSlope sub sin \rBall mul add \rBall THETA sin mul add }
  % trajectoire d'un point
  \parametricplot[plotpoints=12,linecolor=red,showpoints=true,linestyle=none]
  {0}{3}{%
    /THETA \AccelerationRot \rBall div neg RadtoDeg t dup mul mul 0.5 mul 120 sub def
    \Srot{t} /yPosG ED /xPosG ED
    xPosG 90 \ChronoSlope sub cos \rBall mul add \rBall THETA cos mul add
    yPosG 90 \ChronoSlope sub sin \rBall mul add \rBall THETA sin mul add }
\fi
\end{pspicture}%}

\vspace{2cm}
\hspace*{2pt}% only for positioning on paper, otherwise not important
\psset{llx=-1,lly=-1,xAxisLabel={$t\mathrm{[sec]}$},
  yAxisLabel={$s\mathrm{[m]} \,/\, v\mathrm{[m/sec]}$}}% $
\resizebox{11.1cm}{!}{%
\begin{psgraph}[Dy=2,Dx=0.25]{->}(0,0)(2.5,16){13.2cm}{8cm}
  \psline[linecolor=blue!50,linewidth=2pt]%
    (! 2 \ChronoLength mul \Acceleration div sqrt -0.2)%
    (! 2 \ChronoLength mul \Acceleration div sqrt 0.2)
  \psplot[linecolor=blue,linewidth=2pt]{0}{\tEnd}{% S(t)
       0.5 \Acceleration mul x dup mul mul }
  \psline[linecolor=blue,linewidth=2pt]%
    (! \tEnd 0.5 \Acceleration mul \tEnd dup mul mul )%
    (! \tEnd 0.2 add 0.5 \Acceleration mul \tEnd dup mul mul % tEnd+dt S(tEnd)
      \Acceleration \tEnd mul % vEnd
      0.2 mul % vEnd * dt
      add )
  \rput[lb](0.5,14){\color{blue}$s(t)=\frac{1}{2}(\,g\cdot\sin\alpha)\cdot  t^2$}
  \psline[linecolor=blue,linewidth=0.5pt,linestyle=dashed]%
     (0,\ChronoLength)(! \tEnd \ChronoLength)(!\tEnd 0)
  \uput*{20pt}[90](! \tEnd 0){\textbf{$t_{End}$}} %$
%
  \psplot[linecolor=red,linewidth=2pt]{0}{\tEnd}{% Sy(t)
     0.5 \Acceleration mul x dup mul mul \ChronoSlope sin mul neg \CVL add}
  \rput[lb](0.5,13){\color{red}$h(t)=Height-\frac{1}{2}(\,g\cdot\sin^2\alpha)\cdot  t^2\sim W_{pot}$}
  \psline[linecolor=red,linewidth=2pt](!\tEnd 0)(!\tEnd 0.05 add 0)
%
  \psplot[linecolor=green,linewidth=2pt]{0}{\tEnd}{% Sx(t)
     0.5 \Acceleration mul x dup mul mul \ChronoSlope cos mul }
  \rput[lb](0.5,12){\color{green}$w(t)=\frac{1}{2}(\,g\cdot\sin\alpha\cos\alpha)\cdot  t^2$}
  \psplot[linestyle=dashed,linecolor=magenta,linewidth=2pt]{0}{\tEnd}{ \Acceleration x mul }
  \rput[lb](0.5,11){\color{magenta}$v(t)=g\cdot\sin\alpha\cdot  t\sim \sqrt{W_{kin}}$}
  \psline[linecolor=black!60,linestyle=dashed,linewidth=2pt]%
     (!0 \Acceleration)(!\tEnd \Acceleration)
  \rput[lb](0.5,10){\color{black!60}$a(t)=g\cdot\sin\alpha$}
\end{psgraph}}
\hspace{2.25cm}
\resizebox{11.1cm}{!}{%
\begin{psgraph}[Dy=2,Dx=0.25]{->}(0,0)(3,16){13.2cm}{8cm}
  \psline[linecolor=blue!50,linewidth=2pt]%
    (! 2 \ChronoLength mul \AccelerationRot div sqrt -0.2)%
    (! 2 \ChronoLength mul \AccelerationRot div sqrt 0.2)
  \psplot[linecolor=blue,linewidth=2pt]{0}{\tEndRot}{% S(t)
       0.5 \AccelerationRot mul x dup mul mul }
  \psline[linecolor=blue,linewidth=2pt]%
    (! \tEndRot 0.5 \AccelerationRot mul \tEndRot dup mul mul )%
    (! \tEndRot 0.2 add 0.5 \AccelerationRot mul \tEndRot dup mul mul % tEnd+dt S(tEnd)
      \AccelerationRot \tEndRot mul % vEnd
      0.2 mul % vEnd * dt
      add )
  \rput[lb](0.5,14){\color{blue}$s(t)=\frac{5}{14}(\,g\cdot\sin\alpha)\cdot  t^2$}
  \psline[linecolor=blue,linewidth=0.5pt,linestyle=dashed]%
     (0,\ChronoLength)(! \tEndRot \ChronoLength)(!\tEndRot 0)
  \uput*{20pt}[90](! \tEndRot 0){\textbf{$t_{End}$}}% $
%
  \psplot[linecolor=red,linewidth=2pt]{0}{\tEndRot}{% Sy(t)
     0.5 \AccelerationRot mul x dup mul mul \ChronoSlope sin mul neg \CVL add}
  \rput[lb](0.5,13){\color{red}$h(t)=Height-\frac{5}{14}(\,g\cdot\sin^2\alpha)\cdot  t^2\sim W_{pot}$}
  \psline[linecolor=red,linewidth=2pt](!\tEndRot 0)(!\tEndRot 0.05 add 0)
%
  \psplot[linecolor=green,linewidth=2pt]{0}{\tEndRot}{% Sx(t)
     0.5 \AccelerationRot mul x dup mul mul \ChronoSlope cos mul }
  \rput[lb](0.5,12){\color{green}$w(t)=\frac{5}{14}(\,g\cdot\sin\alpha\cos\alpha)\cdot  t^2$}
  \psplot[linestyle=dashed,linecolor=magenta,linewidth=2pt]{0}{\tEndRot}{ \AccelerationRot x mul }
  \rput[lb](0.5,11){\color{magenta}$v(t)=\frac{5}{7}\cdot g\cdot\sin\alpha\cdot  t\sim \sqrt{W_{kin}}$}
  \psline[linecolor=black!60,linestyle=dashed,linewidth=2pt]%
     (!0 \AccelerationRot)(!\tEndRot \AccelerationRot)
  \rput[lb](0.5,10){\color{black!60}$a(t)=\frac{5}{7}\cdot g\cdot\sin\alpha$}
\end{psgraph}}
\end{document}


Ну вы меня поняли
Помогите, пожалуйста

 Профиль  
                  
 
 Re: Рисунок, как в TeXe
Сообщение17.05.2012, 17:02 
Аватара пользователя


01/02/09
206
Inkscape? Впрочем, на вашем месте я бы не обольщался. Чтобы также точно располагать объекты в GUI уйдёт не меньше времени, чем при описании картинки в том же PST.

Код, кстати, вполне читабелен.

 Профиль  
                  
 
 Re: Рисунок, как в TeXe
Сообщение17.05.2012, 17:16 


21/06/11
141
.Serj. в сообщении #572455 писал(а):
Inkscape? Впрочем, на вашем месте я бы не обольщался. Чтобы также точно располагать объекты в GUI уйдёт не меньше времени, чем при описании картинки в том же PST.

Код, кстати, вполне читабелен.


Пусть он даже и читабельный. Но для меня пока что "рисование текстом" с огромной кучей newcommands является очень тяжёлой задачей. Я не хочу сутки рисовать один рисунок)

-- 17.05.2012, 20:21 --

Поторопился
Я нашёл LaTexDraw :)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group