Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Louis
Jouets
Commits
c69d5523
Commit
c69d5523
authored
Jul 17, 2014
by
Louis Paternault
Browse files
[WIP] Les réflexions ne fonctionnent pas
parent
4cb91bb2
Changes
1
Hide whitespace changes
Inline
Side-by-side
fractale
View file @
c69d5523
...
...
@@ -107,61 +107,64 @@ class Fenetre:
class
Fractale
:
def
__init__
(
self
,
angles
,
reflexions
):
self
.
compteur
=
[
-
1
]
self
.
angles
=
list
(
angles
)
self
.
compteur
=
[
0
]
self
.
angles
=
[
sum
(
angles
[
0
:
i
+
1
])
for
i
in
range
(
len
(
angles
))]
self
.
base
=
len
(
angles
)
self
.
angles
.
append
(
-
sum
(
angles
))
self
.
reflexions
=
list
(
reflexions
)
self
.
reflexions
.
append
(
reflexions
.
count
(
True
)
%
2
==
1
)
self
.
reflexions
=
reflexions
def
signe
(
self
,
profondeur
):
reflexion
=
False
reflexion
=
1
while
profondeur
<
len
(
self
.
compteur
):
reflexion
=
(
reflexion
!
=
self
.
reflexions
[
self
.
compteur
[
profondeur
]]
)
reflexion
*
=
self
.
reflexions
[
self
.
compteur
[
profondeur
]]
profondeur
+=
1
if
reflexion
:
return
-
1
else
:
return
1
return
reflexion
def
reflexions_cumulees
(
self
,
index
):
reflexion
=
1
while
index
<
len
(
self
.
compteur
):
if
self
.
reflexions
[
self
.
compteur
[
index
]]:
reflexion
=
-
reflexion
index
+=
1
return
reflexion
def
iteration
(
self
):
angle
=
0
for
index
in
range
(
len
(
self
.
compteur
)):
angle
+=
self
.
angles
[
self
.
compteur
[
index
]]
*
self
.
reflexions_cumulees
(
index
+
1
)
angle
+=
self
.
angles
[
-
1
]
*
self
.
reflexions_cumulees
(
index
+
1
)
print
(
angle
)
turtle
.
setheading
(
angle
)
turtle
.
forward
(
1
)
def
iter
(
self
):
print
(
self
.
compteur
)
print
(
self
.
reflexions
)
index
=
0
retenue
=
1
angle
=
0
while
retenue
!=
0
:
self
.
compteur
[
index
]
+=
1
angle
+=
self
.
signe
(
index
)
*
self
.
angles
[
self
.
compteur
[
index
]]
if
self
.
compteur
[
index
]
==
self
.
base
:
self
.
compteur
[
index
]
=
0
if
(
index
==
len
(
self
.
compteur
)
-
1
):
self
.
compteur
.
append
(
0
)
angle
+=
self
.
signe
(
index
)
*
self
.
angles
[
self
.
compteur
[
index
]]
index
+=
1
retenue
=
1
else
:
retenue
=
0
return
angle
def
plusmoins
(
booleen
):
if
booleen
:
return
-
1
else
:
return
1
if
__name__
==
"__main__"
:
a
ngle
s
=
[((
int
(
arg
.
strip
(
'Rr'
)),
arg
.
endswith
(
'R'
)
or
arg
.
endswith
(
'r'
)))
for
arg
in
sys
.
argv
[
1
:]]
(
angles
,
reflexions
)
=
list
(
zip
(
*
a
ngle
s
))
a
rgument
s
=
[((
int
(
arg
.
strip
(
'Rr'
)),
arg
.
endswith
(
'R'
)
or
arg
.
endswith
(
'r'
)))
for
arg
in
sys
.
argv
[
1
:]]
(
angles
,
reflexions
)
=
list
(
zip
(
*
a
rgument
s
))
fractale
=
Fractale
(
angles
,
reflexions
)
fenetre
=
Fenetre
()
couleur
=
Couleur
()
#turtle.tracer(10, 0) #TODO Add an option to enable this
while
True
:
print
(
fractale
.
angles
)
print
(
fractale
.
reflexions
)
print
(
fractale
.
compteur
)
turtle
.
left
(
fractale
.
iter
())
turtle
.
forward
(
1
)
print
(
fractale
.
angles
,
fractale
.
reflexions
,
fractale
.
compteur
)
fractale
.
iteration
()
fenetre
.
update
(
turtle
.
xcor
(),
turtle
.
ycor
())
couleur
.
update
(
fractale
.
compteur
[
0
])
#if len(fractale.compteur) == 3:
# break
turtle
.
mainloop
()
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment