Logo ROOT   6.07/09
Reference Guide
Namespaces
tornado.py File Reference

Namespaces

 tornado
 

Detailed Description

Tornado example.

View in nbviewer Open in SWAN

pict1_tornado.py.png
1 
2 from ROOT import TCanvas, TView, TPolyMarker3D, TPaveText
3 from ROOT import gROOT, gBenchmark
4 from math import cos, sin, pi
5 
6 gBenchmark.Start( 'tornado' )
7 
8 d = 16
9 numberOfPoints = 200
10 numberOfCircles = 40
11 
12 # create and open a canvas
13 sky = TCanvas( 'sky', 'Tornado', 300, 10, 700, 500 )
14 sky.SetFillColor( 14 )
15 
16 # creating view
17 view = TView.CreateView()
18 rng = numberOfCircles * d
19 view.SetRange( 0, 0, 0, 4.0*rng, 2.0*rng, rng )
20 
21 polymarkers = []
22 for j in range( d, numberOfCircles * d, d ):
23 
24  # create a PolyMarker3D
25  pm3d = TPolyMarker3D( numberOfPoints )
26 
27  # set points
28  for i in range( 1, numberOfPoints ) :
29  csin = sin( 2*pi / numberOfPoints * i ) + 1
30  ccos = cos( 2*pi / numberOfPoints * i ) + 1
31  esin = sin( 2*pi / (numberOfCircles*d) * j ) + 1
32  x = j * ( csin + esin );
33  y = j * ccos;
34  z = j;
35  pm3d.SetPoint( i, x, y, z );
36 
37  # set marker size, color & style
38  pm3d.SetMarkerSize( 1 )
39  pm3d.SetMarkerColor( 2 + ( d == ( j & d ) ) )
40  pm3d.SetMarkerStyle( 3 )
41 
42  # draw
43  pm3d.Draw()
44 
45  # save a reference
46  polymarkers.append( pm3d )
47 
48 gBenchmark.Show( 'tornado' )
49 
50 ct = gBenchmark.GetCpuTime( 'tornado' )
51 timeStr = 'Execution time: %g sec.' % ct
52 
53 text = TPaveText( 0.1, 0.81, 0.9, 0.97 )
54 text.SetFillColor( 42 )
55 text.AddText( 'PyROOT example: tornado.py' )
56 text.AddText( timeStr )
57 text.Draw()
58 
59 sky.Update()
Author
Wim Lavrijsen

Definition in file tornado.py.