2
0
Fork 0
mirror of https://github.com/MartinThoma/LaTeX-examples.git synced 2025-04-19 11:38:05 +02:00
LaTeX-examples/tikz/center-line/tikz.py

41 lines
853 B
Python
Raw Permalink Normal View History

2013-04-08 10:51:04 +02:00
from random import uniform
import random
import math
n = 5
xMin, yMin = 0, 0
xMax, yMax = 5, 5
xSum = 0
ySum = 0
coordinates = []
random.seed(42)
for i in range(n):
x = uniform(xMin, xMax)
y = uniform(yMin, yMax)
xSum += x
ySum += y
coordinates.append((x,y))
center = (float(xSum) / n, float(ySum) / n)
cx, cy = center
pointCoords = ""
for p in coordinates:
px, py = p
newP = "(%.2f,%.2f)," % (px, py)
pointCoords = newP + pointCoords
deltaY = cy-py
deltaX = cx-px
length = (deltaY**2+deltaX**2)**0.5
sinAlpha = deltaY/length
cosAlpha = deltaX/length
print("\draw[->] (%.2f,%.2f) -- (%.2f,%.2f);" % (px, py, px+cosAlpha*length*0.80, py+sinAlpha*length*0.80))
print("\\node[circle,inner sep=1pt,fill] at (%.2f,%.2f) {};" % (cx, cy))
print("\\foreach \point in {" + pointCoords + "}{")
print("\\node[dot] at \point {};")
print("}")