-
-
Notifications
You must be signed in to change notification settings - Fork 359
Add IFS in python #700
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
berquist
merged 9 commits into
algorithm-archivists:master
from
jonathanvanschenck:iterated_function_systems_python
May 27, 2020
Merged
Add IFS in python #700
Changes from all commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
c15b2a9
Add IFS in python
jonathanvanschenck 98488d8
fix typos
jonathanvanschenck 4cdf194
Added name to contributors list
jonathanvanschenck ae230f7
Add yield statement and ngon generator
jonathanvanschenck 7573977
Merge branch 'master' into iterated_function_systems_python
jonathanvanschenck c7e84e7
included import section in IFS.md
jonathanvanschenck 6845f97
Merge branch 'iterated_function_systems_python'
jonathanvanschenck 62a6174
fix imports
jonathanvanschenck 428683e
Merge branch 'master' into iterated_function_systems_python
jonathanvanschenck File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
from random import random, choice | ||
from math import sqrt | ||
|
||
# This generator simulates a "chaos game" | ||
def chaos_game(n, shape_points): | ||
# Initialize the starting point | ||
point = [random(), random()] | ||
|
||
for _ in range(n): | ||
# Update the point position and yield the result | ||
point = [(p + s) / 2 for p, s in zip(point, choice(shape_points))] | ||
yield point | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 👍 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. :) |
||
|
||
# This will generate a Sierpinski triangle with a chaos game of n points for an | ||
# initial triangle with three points on the vertices of an equilateral triangle: | ||
# A = (0.0, 0.0) | ||
# B = (0.5, sqrt(0.75)) | ||
# C = (1.0, 0.0) | ||
# It will output the file sierpinski.dat, which can be plotted after | ||
shape_points = [[0.0, 0.0], | ||
[0.5, sqrt(0.75)], | ||
[1.0, 0.0]] | ||
with open("sierpinski.dat", "w") as f: | ||
for point in chaos_game(10000, shape_points): | ||
f.write("{0}\t{1}\n".format(*point)) |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would fix the range so that the imports in the source code file aren't included.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
okay!