79 lines
1.6 KiB
Python
79 lines
1.6 KiB
Python
#!/usr/bin/env python
|
|
#
|
|
|
|
#
|
|
# autohint math table builder
|
|
#
|
|
|
|
|
|
# Copyright 1996-2000 by
|
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
|
#
|
|
# This file is part of the FreeType project, and may only be used, modified,
|
|
# and distributed under the terms of the FreeType project license,
|
|
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
|
# indicate that you have read the license and understand and accept it
|
|
# fully.
|
|
|
|
|
|
import math
|
|
|
|
ag_pi = 256
|
|
|
|
def print_arctan( atan_bits ):
|
|
atan_base = 1 << atan_bits
|
|
|
|
print " static AH_Angle ag_arctan[1L << AG_ATAN_BITS] ="
|
|
print " {"
|
|
|
|
count = 0
|
|
line = " "
|
|
|
|
for n in range( atan_base ):
|
|
comma = ","
|
|
if ( n == atan_base - 1 ):
|
|
comma = ""
|
|
|
|
angle = math.atan( n * 1.0 / atan_base ) / math.pi * ag_pi
|
|
line = line + " " + repr( int( angle + 0.5 ) ) + comma
|
|
count = count + 1;
|
|
if ( count == 8 ):
|
|
count = 0
|
|
print line
|
|
line = " "
|
|
|
|
if ( count > 0 ):
|
|
print line
|
|
print " };"
|
|
|
|
|
|
# This routine is not used currently.
|
|
#
|
|
def print_sines():
|
|
print " static FT_Fixed ah_sines[AG_HALF_PI + 1] ="
|
|
print " {"
|
|
|
|
count = 0
|
|
line = " "
|
|
|
|
for n in range( ag_pi / 2 ):
|
|
sinus = math.sin( n * math.pi / ag_pi )
|
|
line = line + " " + repr( int( 65536.0 * sinus ) ) + ","
|
|
count = count + 1
|
|
if ( count == 8 ):
|
|
count = 0
|
|
print line
|
|
line = " "
|
|
|
|
if ( count > 0 ):
|
|
print line
|
|
print " 65536"
|
|
print " };"
|
|
|
|
|
|
print_arctan( 8 )
|
|
print
|
|
|
|
|
|
# END
|