mirror of
https://github.com/MartinThoma/LaTeX-examples.git
synced 2025-04-19 11:38:05 +02:00
41 lines
853 B
Python
41 lines
853 B
Python
|
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("}")
|