Thread View: dnet.graphik
1 messages
1 total messages
Started by Ruediger Kolb
Thu, 14 Dec 1989 10:48
Re: Parallele Polylines
Author: 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
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads