コード例 #1
0
def tree():
    s = [
        'root',
        [
            'left',
            ['left_left'],
            ['left_mid'],
            ['left_right'],
        ],
        [
            'right',
            ['right_left'],
            ['right_right'],
        ]
    ]
    t = layout.tree(s, root=ORIGIN, h_sep=2, v_sep=2)
    t['root'] = Inner(t['root'], ['5'])
    t['left'] = Inner(t['left'], ['2', '4'])
    t['right'] = Inner(t['right'], ['7'])
    t['left_left'] = Leaf(t['left_left'], ['0', '1'])
    t['left_mid'] = Leaf(t['left_mid'], ['2'])
    t['left_right'] = Leaf(t['left_right'], ['4'])
    t['right_left'] = Leaf(t['right_left'], ['5', '6'])
    t['right_right'] = Leaf(t['right_right'], ['7', '8'])
    return t
コード例 #2
0
def index_tree(canvas):
    tree = layout.tree(['', ['l'], ['r']],
                       root=Point(3.5, -1),
                       h_sep=1,
                       v_sep=1)
    root = tree['']
    left = canvas.new_bullet(center=tree['l'])
    right = canvas.new_bullet(center=tree['r'])

    l = canvas.new_line(src=root, dst=left)
    canvas.new_text(anchor=centroid(l.get_skeleton().vertices()),
                    text='age',
                    location=locations.NORTHWEST)
    l = canvas.new_line(src=root, dst=right)
    canvas.new_text(anchor=centroid(l.get_skeleton().vertices()),
                    text='name',
                    location=locations.NORTHEAST)

    return root, left, right
コード例 #3
0
    return vs

def tree_edge(canvas, root, left, right):
    def draw_edge(seg0, seg1):
        canvas.new_arrow(
            src=centroid([seg0.vertices()[2], seg0.vertices()[3]]),
            dst=centroid([seg1.vertices()[0], seg1.vertices()[1]]))
    draw_edge(root[0], left[0])
    draw_edge(root[1], right[0])

if __name__ == '__main__':
    tree = layout.tree(
        ['root',
         ['left', ['left_left'], ['left_right']],
         ['right', ['right_left'], ['right_right']]],
        root=ORIGIN,
        h_sep=1.2,
        v_sep=1)

    canvas = Canvas(
        preamble=['\\usepackage{amsmath}'],
        leading_instructions=['\\footnotesize'])

    segs_root = node(canvas, tree['root'])
    segs_left = node(canvas, tree['left'], pen_color=colors.RED)
    segs_right = node(canvas, tree['right'], pen_color=colors.RED)
    segs_left_left = node(canvas, tree['left_left'], pen_color=colors.BLUE)
    segs_left_right = node(canvas, tree['left_right'], pen_color=colors.BLUE)
    segs_right_left = node(canvas, tree['right_left'], pen_color=colors.BLUE)
    segs_right_right = node(canvas, tree['right_right'], pen_color=colors.BLUE)
コード例 #4
0
ファイル: trie.py プロジェクト: TimeExceed/modern_db_part0
from fathom import Point, ORIGIN
from fathom.tikz import Canvas
import fathom.geometry as geo
import fathom.layout as layout
import fathom.tikz.colors as colors
import fathom.tikz.line_styles as line_styles
import fathom.tikz.locations as locations
from itertools import *
from skiplist_lib import draw_doc_chain

if __name__ == '__main__':
    tree = layout.tree(
        ['', ['a', ['al', ['ala', ['alan']], ['ali', ['alic', ['alice']]]]]],
        root=ORIGIN,
        h_sep=2,
        v_sep=1)

    canvas = Canvas(preamble=['\\usepackage{amsmath}'],
                    leading_instructions=['\\footnotesize'])

    for k, v in tree.copy().items():
        if k == '':
            continue
        if k == 'alan':
            tree['alan'] = canvas.new_bullet(center=v, brush_color=colors.RED)
        elif k == 'alice':
            tree['alice'] = canvas.new_bullet(center=v, brush_color=colors.RED)
        else:
            tree[k] = canvas.new_bullet(center=v)

    e = canvas.new_line(src=tree[''], dst=tree['a'])
コード例 #5
0
ファイル: geohash.py プロジェクト: TimeExceed/modern_db_part0
                                       r.vertices()[3]]),
                         dst=centroid([d.vertices()[0],
                                       d.vertices()[1]]))

    canvas.new_rectangle(vertices=[
        segs[0].vertices()[0], segs[-1].vertices()[1], segs[-1].vertices()[2],
        segs[0].vertices()[3]
    ])
    for x in segs[1:]:
        canvas.new_line(src=x.vertices()[0], dst=x.vertices()[3])


if __name__ == '__main__':
    tree = layout.tree(
        ['root', ['left', ['left_up']], ['right', ['right_up']]],
        root=ORIGIN,
        h_sep=2,
        v_sep=1.3)
    for k, v in tree.copy().items():
        tree[k] = upside_down(v)

    canvas = Canvas(preamble=['\\usepackage{amsmath}'],
                    leading_instructions=['\\footnotesize'])

    canvas.new_text(anchor=tree['left_up'], text='$121^\\circ$E')
    left_up = canvas.new_rectangle(center=tree['left_up'],
                                   width=1,
                                   height=0.4,
                                   pen_color=colors.INVISIBLE)
    left = fraction(canvas, tree['left'], (180 + 121) / 360, colors.BLUE)
    canvas.new_arrow(src=left_up,