2014 dxdy logo

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

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




 
 Рисунок, как в TeXe
Сообщение17.05.2012, 16:34 
Здравствуйте
Хотелось бы найти альтернативу 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 
Аватара пользователя
Inkscape? Впрочем, на вашем месте я бы не обольщался. Чтобы также точно располагать объекты в GUI уйдёт не меньше времени, чем при описании картинки в том же PST.

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

 
 
 
 Re: Рисунок, как в TeXe
Сообщение17.05.2012, 17:16 
.Serj. в сообщении #572455 писал(а):
Inkscape? Впрочем, на вашем месте я бы не обольщался. Чтобы также точно располагать объекты в GUI уйдёт не меньше времени, чем при описании картинки в том же PST.

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


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

-- 17.05.2012, 20:21 --

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

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group