Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/genslides.py
diff options
context:
space:
mode:
authorWalter Bender <walter@sugarlabs.org>2010-09-13 16:17:47 (GMT)
committer Walter Bender <walter@sugarlabs.org>2010-09-13 16:17:47 (GMT)
commitf8c82ac236e6dda7908be7a519d85405033a8c0a (patch)
tree74b8d67a047b23a8352efd2c668b6adebc8e1c17 /genslides.py
parent95cb7008cd6ca08cb95b6addb4b99054e1e3efa2 (diff)
loglog vs lnlog
Diffstat (limited to 'genslides.py')
-rwxr-xr-xgenslides.py85
1 files changed, 72 insertions, 13 deletions
diff --git a/genslides.py b/genslides.py
index 1ac090a..0b543ad 100755
--- a/genslides.py
+++ b/genslides.py
@@ -992,19 +992,6 @@ class LLn_slide(C_slide):
else:
svg += self.header(label, x)
- """
- for i in range(0, 101):
- if int((i / 5) * 5) == i:
- svg += self.mark(offset_function(i / 100.), self.slide3,
- self.slide2, self.slide1,
- label_function(i), flip=flip_flag)
- else:
- svg += self.mark(offset_function(i / 100.), self.slide3,
- self.slide2,
- self.slide1 + self.slide_offset2,
- flip=flip_flag)
- """
-
for i in range(0, int(100 * math.log(10)) + 1):
if int((i / 5) * 5) == i:
svg += self.mark(offset_function(i / (100. * math.log(10))),
@@ -1017,6 +1004,11 @@ class LLn_slide(C_slide):
self.slide1 + self.slide_offset2,
flip=flip_flag)
+ svg += self.mark(offset_function(1),
+ self.slide3, self.slide2,
+ self.slide1 + self.slide_offset2,
+ flip=flip_flag)
+
svg += self.footer()
return svg
@@ -1042,6 +1034,73 @@ class LLn_stator(LLn_slide):
x=10)
+class Log_slide(LLn_slide):
+ """ Ln scale for slide """
+ def __init__(self):
+ self.name = 'Log'
+ self.slide1 = HTOP1
+ self.slide2 = HTOP2
+ self.slide3 = HTOP3
+ self.slide_offset1 = 5
+ self.slide_offset2 = 7
+ self.slide_offset3 = -12
+
+ def offset_function(x):
+ return math.log(x, 10)
+
+ def label_function(x):
+ return math.log(x, 10)
+
+ self.svg = self.make_slide(self.name, offset_function, label_function,
+ x=10)
+
+ def make_slide(self, label, offset_function, label_function, x=None,
+ flip_flag=False):
+ """ Generate marks along a slide using passed functions """
+
+ svg = ''
+ if x is None:
+ svg += self.header(label)
+ else:
+ svg += self.header(label, x)
+
+ for i in range(100, 1010, 10):
+ if int((i / 50) * 50) == i:
+ svg += self.mark(offset_function(i / 100.),
+ self.slide3, self.slide2, self.slide1,
+ label_function(i / 100.),
+ flip=flip_flag)
+ else:
+ svg += self.mark(offset_function(i / 100.),
+ self.slide3, self.slide2,
+ self.slide1 + self.slide_offset2,
+ flip=flip_flag)
+
+ svg += self.footer()
+ return svg
+
+
+class Log_stator(Log_slide):
+ """ Log log scale for slide """
+ def __init__(self):
+ self.name = 'Log'
+ self.slide1 = SHEIGHT - HTOP1
+ self.slide2 = SHEIGHT - HTOP2
+ self.slide3 = SHEIGHT - HTOP3 + 12
+ self.slide_offset1 = - 5
+ self.slide_offset2 = - 7
+ self.slide_offset3 = 12
+
+ def offset_function(x):
+ return math.log(x, 10)
+
+ def label_function(x):
+ return math.log(x, 10)
+
+ self.svg = self.make_slide(self.name, offset_function, label_function,
+ x=10)
+
+
class Custom_slide(C_slide):
""" User-defined scale for slide """
def __init__(self, offset_function, label_function, min, max, step):