Fill out set based graphing

This commit is contained in:
Folkert Kevelam 2025-08-28 20:19:18 +02:00
parent 955bfe3487
commit fb27b4c46a
2 changed files with 27 additions and 5 deletions

View File

@ -1,3 +1,5 @@
type Set type Set
predicate SubSet(Set s1, Set s2) predicate SubSet(Set s1, Set s2)
predicate Disjoint(Set s1, Set s2)
predicate Union(Set s1, Set s2)

View File

@ -1,17 +1,37 @@
canvas { canvas {
width = 100 width = 500
height = 100 height = 500
} }
forall Set A; Set B forall Set A; Set B
where SubSet(A, B) { where SubSet(A, B) {
ensure disjoint(B.text, A.icon, 10.0)
ensure contains(A.icon, B.icon, 5.0) ensure contains(A.icon, B.icon, 5.0)
A.icon above B.icon layer A.icon above B.icon
}
forall Set A; Set B
where Disjoint(A, B) {
ensure disjoint(A.icon, B.icon)
}
forall Set A; Set B
where Union(A,B) {
ensure overlapping(A.icon, B.icon)
ensure disjoint(A.text, B.icon)
ensure disjoint(B.text, A.icon)
} }
forall Set x { forall Set x {
x.icon = Circle { shape x.icon = Circle {
strokeWidth : 0.0 strokeWidth : 0.0
} }
ensure x.icon.r > 25 shape x.text = Equation {
string : x.label
fontSize : "32px"
}
ensure contains(x.icon, x.text)
encourage norm(x.text.center - x.icon.center) == 0
layer x.text above x.icon
ensure x.icon.r > 25.0
} }