Jump to content

Talk:Dragon curve

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

Unfolding the Dragon

[edit]

This article, especially the section mentioned above, seems very unencyclopediac to say the least. I've searched google briefly to try and find any copyright violations, but was unsuccessful. Either way, it needs to be editted.

I have re-written (and shortened) the paper folding section. Gandalf61 11:21, 24 January 2006 (UTC)[reply]
Thanks! It needed it. – Quadell (talk) (bounties) 12:58, 24 January 2006 (UTC)[reply]

Supposing you were reading this artcile out of casual interest - like I was - and that you have no particular knowledge of mathematics, then do you really think that there is anything here that is remotely helpful? I came to this page from, predictably, the Jurassic Park page, and I have no idea what on earth these semi-fractal things are used for other than generating pretty pictures. Perhaps a little more consideration should be given to the lay man here? Lots of the science articles are like this - you'd only be able to read them if you already knew all about the subject. --Corinthian 16:27, 24 January 2006 (UTC)

Corinthian, I don't think the dragon curve currently has any particular 'use' other than generating pretty pictures. Therefore, the content of this article largely consists of how to generate it and some known properties about it--mathematical properties. There simply isn't much to say about it, beyond the description, that isn't technical in nature. It does, however, probably need to mention in the opening paragraph that created by folding paper. I will improve the lead section with this information. DrBurningBunny (talk) 14:44, 14 December 2019 (UTC)[reply]

Why is my dragon curve live demonstration deleted?

[edit]

I added a live demonstration to the article in the external link. Why is it deleted? I don't see anything wrong with it. http://jsonchiu.prophp.org/flash/fractal.swf 24.80.142.54 15:06, 18 April 2007 (UTC)[reply]

perhaps because the link is broken? I'll delete it now, but be happy to see a working link again. If you need working webspace to put it up feel free to send me a mail. I'll host anything dragon-related :) Zefiro 20:17, 25 May 2007 (UTC)[reply]

I changed webhost. http://jason.jjtchiu.com/flash/fractal.swf should work 24.80.142.54 00:30, 29 August 2007 (UTC)[reply]

that dimension again?

[edit]

"The fractal dimension of [the Heighway dragon's] boundary has been calculated ...: 1.5238"

Presumably it's something of the form log(m)/log(n), but what are m,n? —162.119.64.112 00:10, 12 June 2007 (UTC)[reply]

Added information and reorganized a bit.

[edit]

Added : reference for the fractal dimension of the boundary, image showing the standard construction, various properties, and a gallery dedicated to the many ways of tiling the plane. And clarified the table of contents. A question : Does that chapter about the Levy C curve has its place here ? Prokofiev2. 10 december 2007.

twindragon illustration

[edit]

Should I add this? http://ogre.nu/doodle/#dragontileTamfang (talk) 00:32, 21 November 2008 (UTC)[reply]

The article already has several illustrations of dragon tilings. I don't think this image would add anything. Gandalf61 (talk) 09:31, 21 November 2008 (UTC)[reply]

Right - Left Code

[edit]

I have written a little piece of C++ code using the formula to determine the turn at a certain step:
for(int i = 1; i < 10; ++i)
{
const bool turnRight = ((((i & -i) << 1) & i) != 0);
cout << i << ": " << (turnRight ? 'R' : 'L') << endl;
}
The output shows 'L' and 'R' the opposite way you would expect:

1: L
2: L
3: R
4: L
5: L
6: R
7: R
8: L
9: L

Doesn't that prove that the formula in the article is not correct as the comment for the (undone) change of 6 December 2008 suggests?

Yes, I think you are right; (((n & -n) << 1) & n) != 0 is TRUE if n = k2m and k = 3 mod 4, in which case the nth turn is Left. There was an error in the previous line of the explanation of the algorithm; I have fixed it now. Gandalf61 (talk) 01:32, 8 March 2009 (UTC)[reply]

Tileability

[edit]

Are dragon curves tileable after any nuber of iterations or only after they're "complete" (after infinite iterations)? Are curves after 10 or 20 iterations tileable? I made a 6th iteration curve which seems to be, if this is the case maybe it should be mentioned in the article. 212.68.15.66 (talk) 07:30, 7 March 2011 (UTC)[reply]

The "tileability" is a result of the self-similarity properties of the Heighway dragon curve - it is made out of two smaller copies of itself. But this self-similarity is only exact in the limit (i.e. after "infinite iterations) - each finite iteration is made out of two copies of the previous iteration, not of itself. So tiling will only be exact for the "complete" fractal dragon curve. Any finite iteration will only have approximate tileability, although it may be close enough to fool the naked eye. Gandalf61 (talk) 09:02, 7 March 2011 (UTC)[reply]

Issues with 2011-06 article version

[edit]

While I am not a member of the lay audience, I agree with the opening comment that this article in its current form needs improvement. We cann't just keep discarding everybodies changes when they try to improve it. "Anchoring" is a well-known method for retarding progress. Here's a list of specific problems I think need addressing.

  1. The 1-sentence introduction is not accessible to lay audiences. For one of the most famous examples of mathematical art, we are losing a great educational opportunity.
  2. The introduction sentence talks about the "dragon curve" as a genus, but only one species, the "Heighway dragon", is discussed subsequently. We need to either explain the classification system in general, or stop speaking in unnecessary generalities.
  3. The "Construction" section for string-rewriting is not implementable, as described. "angle 90" means nothing in the context of the subsequent bullet points. For the actual symbol rewritting in the next bullet points, no interpretations for the symbols are given, and there is no suggestion of how to handle any ambiguities which arrise from "+-" and "--" symbols.
  4. The connection with complex function iteration is similiarly not explained adequately to be useful. These are simple linear functions, so their compositions will also be linear. Transformation to matrix arithmetic just transforms the functions from one specialized language to another, and every mathematician can do this transformation for themselves if needed. It's much more important to describe how these functions relate to the construction of the dragon curve, or if they are merely symmetries under which the curve is invariant. The random software references seems unnecessary and unhelpful.
  5. The folding section is by far the most important of the explanations so far presented. It was the piece of the page I was able to use to construct a dragon curve of my own, and highlights the non-local aspects of this rule that distinguish it from more common Lindenmayer systems. It is also a highly accessible explanation for lay audiences, and as such should be emphasized first, before the more inaccessible explanations for those with mathematical and computational training. — Preceding unsigned comment added by 71.139.153.96 (talk) 18:48, 25 June 2011 (UTC)[reply]
The twindragon, terdragon and Lévy C curve are also called draogn curves - each curve has its own section in the article. The linked articles L-system and iterated function system contain more details of these construction methods. The folding construction is not more important or more fundamental than the other construction methods. Gandalf61 (talk) 21:28, 25 June 2011 (UTC)[reply]

Sequential algorithm

[edit]

Does anyone know a sequential algorithm to calculate the next turn with just a finite amount of memory and a constant amount of time?

Recursive methods fail because the memory required is O(log n). The same holds for the direct method, because the iteration number itself is O(log n). --Zom-B (talk) 14:09, 25 February 2013 (UTC)[reply]

Degree sign

[edit]

The 'degree signs' in the formulae after 'Using pairs of real numbers instead...' look horrible: they are superscript U+0030: DIGIT ZERO and U+006F: LATIN SMALL LETTER O, the second one even in italics! --Andreas Rejbrand (talk) 11:29, 29 August 2014 (UTC)[reply]

Fixed. LaTeX uses ^\circ for ° Rkedge (talk) 16:43, 2 January 2015 (UTC)[reply]

Another Python code

[edit]

I made a Python code that can generalize the dragon curve:

import turtle as t

angle = 90
step = 5

counter = 1

def dragonturn(n):
    if n % 2 == 0:
        return dragonturn(int(n / 2))
    else:
        return (n % 4) == 1

while True:
    if dragonturn(counter):
        t.right(angle)
    else:
        t.left(angle)
    t.forward(step)
    counter += 1

For angle=120° it forms a mass of triangles that grows really slowly, on the order of or . I believe it grows forever. -- EZ132 (Talk) 16:30 18 Feb 2020 (UTC)

Dragon curve as chaos game

[edit]

The IFS for the dragon curve can be made into a form of the Chaos game. I made Python code for it:

import random
import turtle

turtle.pu()

f1 = lambda z: z * (1+1j) / 2
f2 = lambda z: 1 - (z * (1-1j) / 2)

cur = 1+0j

def goto(z: complex):
    turtle.goto(400 * z.real - 200, 400 * z.imag)

while True:
    goto(cur)
    turtle.dot()
    cur = random.choice([f1, f2])(cur)

— Preceding unsigned comment added by 73.170.240.246 (talk) 11:41, March 30, 2020 (UTC)

Dragon curve generator

[edit]

My web page allows you to generate dragon curves and variants interactively. It also has the ability to do infinite zoom (although you might have to wait a few seconds to generate the image while zooming). link. Seems like it could be added in the "variant" section. — Preceding unsigned comment added by 73.170.240.246 (talk) 11:41, March 30, 2020 (UTC)

Dragon curve in Python

[edit]

(Migrated from User talk:MrOllie)

Hi, can you please clarify what you mean by this new section being “redundant”?

Firstly, there is no example code implementation of constructing a dragon curve anywhere on the page, in any (programming) language. If there were, I might understand the “redundant” tag (though not necessarily, see below re: Gosper curve and Logo). Other famous space-filling/fractal curves also have code implementations: http://en.wiki.x.io/wiki/Sierpiński_curve#Code http://en.wiki.x.io/wiki/Lévy_C_curve#Sample_Implementation_of_Levy_C_Curve

Secondly, it is not obvious or intuitive, especially for beginner programmers (to whom this section is aimed), how to translate the description of the construction into a recursive function definition. I believe including this short section has much instructional value, without detracting from the reading experience in any way. Moreover, including a link to code that can be tinkered and experimented with aids with understanding in a way that static text or graphics cannot, allowing one to truly “feel” the connection between fractals and recursion.

Third and finally, this section is directly inspired by a corresponding section for the Gosper curve here, and I don’t see anyone removing that for being “redundant”, despite it being even more closely repeating the Lindenmayer system section than anything my section repeats, and there already being an implementation in another language Logo immediately prior. Nevertheless, the code differ significantly, and again, the link to interactive Python code that runs directly in the browser (not available with Logo) is very valuable.

It’s use-cases like these that make Wikipedia so much more dynamic and powerful as a learning tool than any traditional encyclopedia. To insist on reducing Wikipedia to merely a reference book is counter to the spirit and ultimate goal of disseminating knowledge that belies the Wikipedia project. I appreciate that work must be done to maintain the quality of the content, and I applaud and thank you for your efforts to that end. However, I must respectfully disagree that this is not a case where such work is needed.

Rubixmann (talk) 17:09, 4 April 2023 (UTC)[reply]

It is redundant with the description of the curve itself, and it was unsourced - Wikipedia isn't a place to host code you've written. As to other articles, see WP:OTHERSTUFF - it could well be that that code should be removed rather than more added on other articles. - MrOllie (talk) 17:19, 4 April 2023 (UTC)[reply]
@ 47.152.157.10 (talk) 17:30, 4 April 2023 (UTC)[reply]
The description of the curve as it stands is manifestly opaque, especially with the grammatical error: “alternatively”, meaning “on the other hand, as another option/possibility”, should most likely be “alternately” or (the less standard) “alternatingly”.
This is exacerbated by the fact that on 13-14 March 2021, User:David Eppstein deleted a good deal of what looked like useful content. In particular, this included the precise, mathematical Lindenmayer system description of the curve from the Construction section, which is both mentioned in the lead section (so one would naturally expect it to be given later), and still present for the other curve variants on the page, namely Twindragon and Terdragon (as well as many other pages on fractals, the relevance of which as an argument shall now be discussed).
As to WP:OTHERSTUFF (ignoring the fact that that applies to deleting articles, not sections therein, which is covered in WP:OTHERCONTENT): “While these comparisons are not a conclusive test, they may form part of a cogent argument; an entire comment should not be dismissed because it includes a comparative statement like this.” Moreover, see WP:SSEFAR: “…arguing in favor of consistency among Wikipedia articles is not inherently wrong–it is to be preferred. Only when the precedent is itself in conflict with policy, guidelines or common sense is it wrong to argue that the precedent should be followed elsewhere.” If you could point out specific Wikipedia policy or guidelines either implicitly or explicitly banning the inclusion of code (unsourced or otherwise) detailing the implementation of some algorithm or construction, I would be much obliged.
In my opinion, the fact that the construction/algorithm itself is sourced means specific implementations in code need not be, as is the case for all code/pseudocode found on Wikipedia. See e.g. Binary search algorithm#Algorithm (Note: this is a Featured Page, and according to WP:OTHERSTUFF: “While comparing with other articles is not, in general, a convincing argument, comparing with articles … such as Featured article[s] … makes a much more credible case.” To use a blanket over-generalization like “Wikipedia isn’t a place to host code” in light of the above comes across as flippant, and adding the “you’ve written” part seems disingenuous, since it’s not the fact that I wrote it that’s the issue is it, after all, isn’t all content on Wikipedia (in theory) written by contributors like you and me?
Ultimately, “Whether a given instance of something can serve as a precedent for some other instance must be decided by way of consensus.” The question of whether code should or should not be a part of these pages is very much subject to discussion. As you said, it may well be that other code should removed, but it may also be that code should be added to other pages. But either way, it is absolutely NOT your prerogative to unilaterally delete any such content without discussion. To use a more illustrative example, would you go and delete 90% of Barnsley fern, with its dozen or so code examples, none of which are sourced, simply because you believe they are all “redundant” with the Construction or Computer generation section?
I hope others, including Prof. Eppstein, might weigh in on all this, including the other arguments in my original comment. But the question of code aside, I strongly believe that at least the L-system description should be put back. This is not an addition, it is merely restoring the section to a former more complete state and for the article to be more self-consistent.
Rubixmann (talk) 20:58, 4 April 2023 (UTC)[reply]
All this discussion belongs on the article's associated talk page, since other editors will probably wish to weigh in. Take it up there rather than here. I will note, though, that is absolutely IS my prerogative to unilaterally delete unsourced text without discussion, see WP:V and WP:NOR. MrOllie (talk) 21:06, 4 April 2023 (UTC)[reply]

(End of migrated parts)

Can anyone provide a single example on Wikipedia where code itself, not (a description of) the algorithm the code is implementing, is sourced? Also, please explain how there can be unsourced (pseudo)code in a Featured article, if merely writing up an implementation of a (sourced) algorithm is considered “original research”. Until then, I dispute the notion that WP:V and WP:NOR apply here, and by extension, your prerogative.
(Note that reference [7] (Knuth 1998, §6.2.1 ("Searching an ordered table"), subsection "Algorithm B"., available here) in Binary search algorithm#Algorithm contains nothing remotely resembling the (pseudo)code on that page; even the natural language description of the algorithm is quite different. Apparently, none of those reviewers considered that code to be unsourced or original research when granting FA status.)
Saying that WP:V and WP:NOR apply no matter what, if taken to the logical extreme, would mean that every single sentence on Wikipedia would need a source, and not a single original thought can be written, so I must assume you agree that there are cases where they don’t apply. I argue, by precedent (WP:SSEFAR and WP:OTHERCONTENT), that this is one such case.
Rubixmann (talk) 22:13, 4 April 2023 (UTC)[reply]
In fact WP:V and WP:NOR do apply no matter what. If you have questions about basic Wikipedia policies like these you can get explanations at WP:TEAHOUSE. - MrOllie (talk) 22:18, 4 April 2023 (UTC)[reply]
You have thus far not responded to any of my central points above, and this last reply is particularly weak with a flat out contradiction (level 4) and ad hominem (bottom level) on Wikipedia:Talk page guidelines#/media/File:Disputeresolution.svg. As such, I must remind you of WP:BITE.
You are, deliberately or not, misunderstanding and misrepresenting my position. I’m saying that WP:V doesn’t apply [as grounds for deletion], because my contribution IS verified - by the source given for the construction, since my code is merely an implementation of it, and that WP:NOR doesn’t apply [as grounds for deletion], because such code is obviously not “original research” in any sense of that phrase. I proffered the FA Binary search algorithm as evidence/precedent to support both those claims.
I was never claiming that my edits were somehow exempt from WP:V and WP:NOR, merely that they are not relevant/at issue here i.e. “don’t apply [as grounds for deletion]”. My example was intended to demonstrate that you wouldn’t delete every single sentence on Wikipedia that isn’t followed by an inline citation on the grounds of WP:V; the very idea is absurd. Common sense tells us one source/citation can be enough to verify a few related sentences/a short paragraph/an entire section on the same idea.
But anyway, we are obviously still going to get nowhere going round and round like this, so I will cease replying for now, to wait and hope for another editor to weigh in, or move to WP:DNR in a couple days if need be. Rubixmann (talk) 23:06, 4 April 2023 (UTC)[reply]
Your central points are mostly irrelevant to Wikipedia's policies. But you don't seem to really want to listen to my input, so we can wait for another editor to come along and tell you the same thing. MrOllie (talk) 23:25, 4 April 2023 (UTC)[reply]
Reusing a citation that obviously does not support your content isn't going to help, either. MrOllie (talk) 23:53, 4 April 2023 (UTC)[reply]

two-way recursion

[edit]

Two animations are labeled "Recursive construction of the curve", but I think that's a poor description of the first. How about calling them something like bottom-up and top-down respectively? —Tamfang (talk) 21:41, 3 July 2023 (UTC)[reply]