* do file to exemplify drawing ellipses. See venndiag.ado for further notes. * By JM.Lauritsen. Martin Villumsen sorted out the mathmatics of drawing ellipses * in different angles. capture program drop ellipse program define ellipse /* draw ellipse on screen */ version 6 * parameters 1: Rotation of ellipse in degrees 2:offset X 3:offset Y 4+5: defines shape of ellipse* / tempfile before save "`before'" local V = (`1'/360)* 2*_pi local lam = `4' /*size of ellipse ~ length */ local eps = `5' /*shape of ellipse ~ if = 0 the result will be a circle*/ local offx = `2' local offy = `3' clear set obs 1001 tempvar i x y gen `i' = -_pi+(2*_pi/1000)*(_n-1) gen `x' = ((1+`eps')*(`lam')*cos(`i'))/(1+(`eps')*cos(`V'-`i'))*100 + `offx' gen `y' = ((1+`eps')*(`lam')*sin(`i'))/(1+(`eps')*cos(`V'-`i'))*100 + `offy' gph open gph vline `x' `y' gph text 2000 18000 0 -1 Angle in this graph is `1' gph text 3500 18000 0 -1 Offset X: `2' Offset Y: `3' gph text 4500 18000 0 -1 Parameter: Size=`4' Shape=`5' gph close use "`before'", clear end * now try three examples: ellipse 0 20000 12000 15 0.85 more ellipse 110 5000 15000 8 0.9 more ellipse 240 12000 12000 25 0.65