Mein view für ein 90° Kreissegment:
Code: Alles auswählen
def winkel(req):
angle = 90
print("Winkel: " + str(angle))
radius = 50
print("radius: "+ str(radius))
centerX = 50
print("centerX: " + str(centerX))
centerY = 50
print("centerY: "+ str(centerY))
startX = centerX + radius * math.cos(angle * math.pi / 180 / 2)
print("startX: "+ str(startX))
startY = centerY + radius * math.sin(angle * math.pi / 180 / 2)
print("startY: " + str(startY))
endX = centerX + radius * math.cos(-angle * math.pi / 180 / 2)
print("endX: " + str(endX))
endY = centerY + radius * math.sin(-angle * math.pi / 180 / 2)
print("endY: "+ str(endY))
largeArcFlag = 0 #(angle <= 180) ? 0 : 1
sweepFlag = 0
context = dict(angle = angle, radius = radius,
centerX = centerX, centerY = centerY, startX = startX, startY = startY, endX = endX, endY = endY,
largeArcFlag = largeArcFlag, sweepFlag = sweepFlag )
return render(req, 'core/aufgabe.html', context)
Code: Alles auswählen
Winkel: 90
radius: 50
centerX: 50
centerY: 50
startX: 85.35533905932738
startY: 85.35533905932738
endX: 85.35533905932738
endY: 14.644660940672622
Code: Alles auswählen
{% load static %}
{% load l10n %}
<html lang="de">
<head>
<title>Rechentrainer von Peter Doll</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
...
</head>
...
<body>
<div class="container">
{% block content %}
<h2> Winkel {{angle}}°</h2>
<p>
{% include "svg/winkel.svg" %}
</p>
{% endblock %}
</div>
</body>
Code: Alles auswählen
<svg width="100" height="100">
<text x="10" y="15" class="text">{{angle}}°</text>
<path d="M {{startX}}, {{startY}}
A {{radius}}, {{radius}} 0 {{largeArcFlag}} {{sweepFlag}} {{endX}}, {{endY}}
L {{centerX}}, {{centerY}}
Z"
fill="yellow" />
<path d="M 85, 85
A 50, 50 0 0 0 85, 15
L 50, 50
Z"
fill="yellow" />
</svg>
... irgendwas mache ich wieder falsch!