Article View: dnet.graphik
Article #63Re: Parallele Polylines
From: Ruediger Kolb
Date: Thu, 14 Dec 1989 10:48
Date: Thu, 14 Dec 1989 10:48
61 lines
2679 bytes
2679 bytes
------------------------------------------------------------------------------
Date: Wed, 13 Dec 89 10:24:39 MEZ
From: "H. Pudlatz" <URZ04@DMSWWU1A>
Subject: Parallele Polylines
Das folgende Unterprogramm ist zwar nicht in Pascal, sondern in FORTRAN 77
(IBM-Version), ausserdem malt es fuer IANZ = 1 eine Autobahn, also drei
parallele Linien statt zweier. Es sollte aber wohl leicht an die ursprueng-
liche Problemstellung (SCHICK at DMRHRZ11) angepasst werden koennen.
Eine Warnung am Schluss: das UP ist "quick and dirty" (es trifft keine
besonderen Vorkehrungen fuer die generierten Polylines bei spitzen Ecken),
es erscheint mit aber zum Zeichnen dicker Linien mit einer duennen Feder
bei einem Penplotter ganz brauchbar.
Gruss H. Pudlatz
----------------------
SUBROUTINE PARLIN (N, X, Y, ABST, IANZ)
REAL X(*), Y(*), U(1000), V(1000)
*
*.... Zeichnen paralleler Polylines
*
* Parameter:
* N = Anzahl der Punkte der urspruenglichen Polyline
* X, Y = x- und y-Vektoren der Polyline
* ABST = Abstand der parallelen Polylines voneinander
* IANZ = Anzahl der jeweils rechts und links zu
* zeichnenden Polylines
*
CALL GPL (N, X, Y) ! mittlere Polyline,
DO J = -IANZ, IANZ ! symmetrisch links und rechts dazu
M = 0 ! IANZ Polylines im Abstand ABST
DD= ABST*J
DO I = 1, N-1
DX= X(I+1)-X(I)
DY= Y(I+1)-Y(I)
S = DD/SQRT (DX**2 + DY**2)
U(M+1) = X(I ) - S*DY
V(M+1) = Y(I ) + S*DX
U(M+2) = X(I+1) - S*DY
V(M+2) = Y(I+1) + S*DX
M = M + 2
IF (M .GE. 999) THEN
CALL GPL (M, U, V)
U(1) = U(M)
V(1) = V(M)
M = 1
END IF
END DO
IF (M .GT. 1) CALL GPL (M, U, V)
END DO
END
Acknowledge-To: <URZ04@DMSWWU1A>
--
Ruediger Kolb Phone: +49-2241-14-2644
GMD e-mail:
Postfach 1240 kolb@gmdzi
D-5205 Sankt Augustin kolb@f3.gmd.dbp.de
Technical Details
Message-ID:
<1778@gmdzi.UUCP>Path:
arc1-ca.pugleaf.net!gmdzi!kolbShow Full Headers
Complete Article Headers
X-Google-Language: GERMAN,ASCII-7-bit X-Google-Thread: 115c6e,e60011b95314eb59 X-Google-Attributes: gid115c6e,public X-Google-ArrivalTime: 1989-12-14 02:48:30 PST Path: arc1-ca.pugleaf.net!gmdzi!kolb From: kolb@gmdzi.UUCP (Ruediger Kolb) Newsgroups: dnet.graphik Subject: Re: Parallele Polylines Message-ID: <1778@gmdzi.UUCP> Date: 14 Dec 89 10:48:30 GMT Distribution: dnet Organization: GMD, Sankt Augustin, F. R. Germany Lines: 61 Approved: kolb@gmdzi.UUCP