File: line.sql

package info (click to toggle)
pgsphere 1.5.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,220 kB
  • sloc: ansic: 13,926; sql: 6,895; cpp: 853; makefile: 278; perl: 168; yacc: 145; python: 106; lex: 55; xml: 51; sh: 1
file content (84 lines) | stat: -rw-r--r-- 3,072 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
\set ECHO none
SELECT set_sphere_output_precision(8);
\set ECHO all
SET extra_float_digits TO -3;

-- checking spherical line operators

SELECT sline ( spoint '(0, 90d)', spoint '(0, -89d)' )   =
       sline ( spoint '(0, 90d)', spoint '(0, -89d)' )  ;
SELECT sline ( spoint '(0,  90d)', spoint '(0, -89d)' )   <>
       sline ( spoint '(0, -89d)', spoint '(0,  90d)' ) ;



SELECT sline ( spoint '(0,   0d)', spoint '(10d, 0d)' )   #
       sline ( spoint '(5d,  5d)', spoint '(5d, -5d)' ) ;

SELECT sline ( spoint '(0,   0d)', spoint '(10d, 0d)' )   #
       sline ( spoint '(10d,  5d)', spoint '(10d, -5d)' ) ;

SELECT sline ( spoint '(0,   0d)', spoint '(10d, 0d)' )   #
       sline ( spoint '(15d,  5d)', spoint '(15d, -5d)' ) ;

SELECT sline ( spoint '(0,   0d)', spoint '(10d, 0d)' )   #
       sline ( spoint '(10d,  0d)', spoint '(10d, -5d)' ) ;



SELECT sline ( spoint '(0,   0d)', spoint '(10d, 0d)' )   #
       sline ( spoint '(5d,  -5d)', spoint '(5d, 5d)' ) ;

SELECT sline ( spoint '(0,   0d)', spoint '(10d, 0d)' )   #
       sline ( spoint '(10d, -5d)', spoint '(10d, 5d)' ) ;

SELECT sline ( spoint '(0,   0d)', spoint '(10d, 0d)' )   #
       sline ( spoint '(15d, -5d)', spoint '(15d, 5d)' ) ;

SELECT sline ( spoint '(0,   0d)', spoint '(10d, 0d)' )   #
       sline ( spoint '(10d,  0d)', spoint '(10d, 5d)' ) ;
       
       
-- check small lines


SELECT sline ( spoint '(0,   0d)', spoint '(0.000001d, 0d)' )   #
       sline ( spoint '(0.0000005d,  0.0000005d)', spoint '(0.0000005d, -0.0000005d)' ) ;

SELECT sline ( spoint '(0,   0d)', spoint '(0.000001d, 0d)' )   #
       sline ( spoint '(0.000001d,  0.0000005d)', spoint '(0.000001d, -0.0000005d)' ) ;

SELECT sline ( spoint '(0,   0d)', spoint '(0.000001d, 0d)' )   #
       sline ( spoint '(0.0000015d,  0.0000005d)', spoint '(0.0000015d, -0.0000005d)' ) ;

SELECT sline ( spoint '(0,   0d)', spoint '(0.000001d, 0d)' )   #
       sline ( spoint '(0.000001d,  0d)', spoint '(0.000001d, -0.0000005d)' ) ;



SELECT sline ( spoint '(0,   0d)', spoint '(0.000001d, 0d)' )   #
       sline ( spoint '(0.0000005d,  -0.0000005d)', spoint '(0.0000005d, 0.0000005d)' ) ;

SELECT sline ( spoint '(0,   0d)', spoint '(0.000001d, 0d)' )   #
       sline ( spoint '(0.000001d, -0.0000005d)', spoint '(0.000001d, 0.0000005d)' ) ;

SELECT sline ( spoint '(0,   0d)', spoint '(0.000001d, 0d)' )   #
       sline ( spoint '(0.0000015d, -0.0000005d)', spoint '(0.0000015d, 0.0000005d)' ) ;

SELECT sline ( spoint '(0,   0d)', spoint '(0.000001d, 0d)' )   #
       sline ( spoint '(0.000001d,  0d)', spoint '(0.000001d, 0.0000005d)' ) ;


-- checking the distance between a line and a point


SELECT sline '( 90d, 0d, 0d, XYZ ), 40d ' <-> spoint '( 0d, 90d )';

SELECT sline '( 90d, 0d, 0d, XYZ ), 40d ' <-> spoint '( 0d, 90d )'   =
       spoint '( 0d, 90d )' <-> sline '( 90d, 0d, 0d, XYZ ), 40d ';

SELECT sline '( 0d, 0d, 0d, XYZ ), 0d ' <-> spoint '( 0d, 90d )';

SELECT sline '( 0d, 0d, 0d, XYZ ), 0d ' <-> spoint '( 0d, 0d )';

SELECT sline '( 0d, 0d, 0d, XYZ ), 30d ' <-> spoint '( 0d, 30d )';