<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.wiki.synfig.org/index.php?action=history&amp;feed=atom&amp;title=Dev%3ABline_Speed</id>
		<title>Dev:Bline Speed - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://www.wiki.synfig.org/index.php?action=history&amp;feed=atom&amp;title=Dev%3ABline_Speed"/>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Bline_Speed&amp;action=history"/>
		<updated>2026-04-30T10:57:10Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.26.3</generator>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Bline_Speed&amp;diff=11549&amp;oldid=prev</id>
		<title>Zelgadis: moved Bline Speed to Dev:Bline Speed</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Bline_Speed&amp;diff=11549&amp;oldid=prev"/>
				<updated>2010-02-19T06:53:57Z</updated>
		
		<summary type="html">&lt;p&gt;moved &lt;a href=&quot;/index.php?title=Bline_Speed&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Bline Speed (page does not exist)&quot;&gt;Bline Speed&lt;/a&gt; to &lt;a href=&quot;/Dev:Bline_Speed&quot; title=&quot;Dev:Bline Speed&quot;&gt;Dev:Bline Speed&lt;/a&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 06:53, 19 February 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='en'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Zelgadis</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Bline_Speed&amp;diff=10026&amp;oldid=prev</id>
		<title>Zelgadis: Text replace - ']]' to '}}'</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Bline_Speed&amp;diff=10026&amp;oldid=prev"/>
				<updated>2009-09-08T06:30:48Z</updated>
		
		<summary type="html">&lt;p&gt;Text replace - &amp;#039;]]&amp;#039; to &amp;#039;}}&amp;#039;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 06:30, 8 September 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Bline's parameter's &amp;quot;speed&amp;quot; ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Bline's parameter's &amp;quot;speed&amp;quot; ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you have played enough with Blines, &amp;quot;{{l|Convert#BLine_Vertex|BLine Vertex&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;]]&lt;/del&gt;&amp;quot; and &amp;quot;{{l|Convert#BLine_Tangent|BLine Tangent&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;]]&lt;/del&gt;&amp;quot; converts you perhaps have noticed that a change in the &amp;quot;Amount&amp;quot; parameter doesn't always step forward/backwards the same amount.&amp;#160; For example, adding 0.1 to &amp;quot;Amount&amp;quot; doesn't move a &amp;quot;Bline Vertex&amp;quot; by the same distance all the time.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you have played enough with Blines, &amp;quot;{{l|Convert#BLine_Vertex|BLine Vertex&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;}}&lt;/ins&gt;&amp;quot; and &amp;quot;{{l|Convert#BLine_Tangent|BLine Tangent&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;}}&lt;/ins&gt;&amp;quot; converts you perhaps have noticed that a change in the &amp;quot;Amount&amp;quot; parameter doesn't always step forward/backwards the same amount.&amp;#160; For example, adding 0.1 to &amp;quot;Amount&amp;quot; doesn't move a &amp;quot;Bline Vertex&amp;quot; by the same distance all the time.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Near the bline's vertices (or near the curved parts) you'll notice that evenly spaced &amp;quot;Amount&amp;quot; values are either compressed together or expanded away from each other.&amp;#160; Trying to make an object follow a bline will lead to the object changing speeds as it goes along it.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Near the bline's vertices (or near the curved parts) you'll notice that evenly spaced &amp;quot;Amount&amp;quot; values are either compressed together or expanded away from each other.&amp;#160; Trying to make an object follow a bline will lead to the object changing speeds as it goes along it.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Zelgadis</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Bline_Speed&amp;diff=9535&amp;oldid=prev</id>
		<title>Zelgadis: Text replace - '[[' to '{{l|'</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Bline_Speed&amp;diff=9535&amp;oldid=prev"/>
				<updated>2009-09-07T15:19:55Z</updated>
		
		<summary type="html">&lt;p&gt;Text replace - &amp;#039;[[&amp;#039; to &amp;#039;{{l|&amp;#039;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 15:19, 7 September 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Bline's parameter's &amp;quot;speed&amp;quot; ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Bline's parameter's &amp;quot;speed&amp;quot; ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you have played enough with Blines, &amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/del&gt;Convert#BLine_Vertex|BLine Vertex]]&amp;quot; and &amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/del&gt;Convert#BLine_Tangent|BLine Tangent]]&amp;quot; converts you perhaps have noticed that a change in the &amp;quot;Amount&amp;quot; parameter doesn't always step forward/backwards the same amount.&amp;#160; For example, adding 0.1 to &amp;quot;Amount&amp;quot; doesn't move a &amp;quot;Bline Vertex&amp;quot; by the same distance all the time.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you have played enough with Blines, &amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;{{l|&lt;/ins&gt;Convert#BLine_Vertex|BLine Vertex]]&amp;quot; and &amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;{{l|&lt;/ins&gt;Convert#BLine_Tangent|BLine Tangent]]&amp;quot; converts you perhaps have noticed that a change in the &amp;quot;Amount&amp;quot; parameter doesn't always step forward/backwards the same amount.&amp;#160; For example, adding 0.1 to &amp;quot;Amount&amp;quot; doesn't move a &amp;quot;Bline Vertex&amp;quot; by the same distance all the time.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Near the bline's vertices (or near the curved parts) you'll notice that evenly spaced &amp;quot;Amount&amp;quot; values are either compressed together or expanded away from each other.&amp;#160; Trying to make an object follow a bline will lead to the object changing speeds as it goes along it.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Near the bline's vertices (or near the curved parts) you'll notice that evenly spaced &amp;quot;Amount&amp;quot; values are either compressed together or expanded away from each other.&amp;#160; Trying to make an object follow a bline will lead to the object changing speeds as it goes along it.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key synfigru_wiki:diff:version:1.11a:oldid:5764:newid:9535 --&gt;
&lt;/table&gt;</summary>
		<author><name>Zelgadis</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Bline_Speed&amp;diff=5764&amp;oldid=prev</id>
		<title>Dooglus: /* Solving the equation */</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Bline_Speed&amp;diff=5764&amp;oldid=prev"/>
				<updated>2008-02-15T20:49:28Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Solving the equation&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 20:49, 15 February 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l89&quot; &gt;Line 89:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 89:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Let's try a simple case, constant speed. If &amp;lt;math&amp;gt;s_{mag}(t)\,\!&amp;lt;/math&amp;gt; is a constant value, then it would need to be equal to the Bline's length, so that as the &amp;lt;math&amp;gt;t\,\!&amp;lt;/math&amp;gt; goes from 0.0 up to 1.0, the curve moves from the start to the end.&amp;#160; Too little speed and the curve won't reach the end when &amp;lt;math&amp;gt;t\,\!&amp;lt;/math&amp;gt; reaches 1.0.&amp;#160; Too much and the curve will go past the end when &amp;lt;math&amp;gt;t\,\!&amp;lt;/math&amp;gt; reaches 1.0.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Let's try a simple case, constant speed. If &amp;lt;math&amp;gt;s_{mag}(t)\,\!&amp;lt;/math&amp;gt; is a constant value, then it would need to be equal to the Bline's length, so that as the &amp;lt;math&amp;gt;t\,\!&amp;lt;/math&amp;gt; goes from 0.0 up to 1.0, the curve moves from the start to the end.&amp;#160; Too little speed and the curve won't reach the end when &amp;lt;math&amp;gt;t\,\!&amp;lt;/math&amp;gt; reaches 1.0.&amp;#160; Too much and the curve will go past the end when &amp;lt;math&amp;gt;t\,\!&amp;lt;/math&amp;gt; reaches 1.0.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Conveniently, this method also allows to find a Bline's length. If we assume &amp;lt;math&amp;gt;s_{mag}(t)=1\,\!&amp;lt;/math&amp;gt; then the curve will reach &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;it's &lt;/del&gt;end when &amp;lt;math&amp;gt;t=LENGTH\,\!&amp;lt;/math&amp;gt;, where LENGTH is the Bline's length.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Conveniently, this method also allows to find a Bline's length. If we assume &amp;lt;math&amp;gt;s_{mag}(t)=1\,\!&amp;lt;/math&amp;gt; then the curve will reach &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;its &lt;/ins&gt;end when &amp;lt;math&amp;gt;t=LENGTH\,\!&amp;lt;/math&amp;gt;, where LENGTH is the Bline's length.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dooglus</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Bline_Speed&amp;diff=5763&amp;oldid=prev</id>
		<title>Dooglus: /* Adjusting a Bline's &quot;speed&quot; */</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Bline_Speed&amp;diff=5763&amp;oldid=prev"/>
				<updated>2008-02-15T20:47:37Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Adjusting a Bline&amp;#039;s &amp;quot;speed&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 20:47, 15 February 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l55&quot; &gt;Line 55:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 55:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Adjusting a Bline's &amp;quot;speed&amp;quot; ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Adjusting a Bline's &amp;quot;speed&amp;quot; ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Our objective is now to compensate the derivative to achieve a desired &amp;quot;speed&amp;quot;. We cannot change the control points to the curve without changing &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;it's &lt;/del&gt;shape. The only other thing we can change is the parameter &amp;lt;math&amp;gt;t\,\!&amp;lt;/math&amp;gt;. Therefore, we define a function &amp;lt;math&amp;gt;g(t)\,\!&amp;lt;/math&amp;gt; so that:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Our objective is now to compensate the derivative to achieve a desired &amp;quot;speed&amp;quot;. We cannot change the control points to the curve without changing &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;its &lt;/ins&gt;shape. The only other thing we can change is the parameter &amp;lt;math&amp;gt;t\,\!&amp;lt;/math&amp;gt;. Therefore, we define a function &amp;lt;math&amp;gt;g(t)\,\!&amp;lt;/math&amp;gt; so that:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt;\frac{d\mathbf{B}(g(t))}{dt}=\boldsymbol{s}(t)\,\,&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt;\frac{d\mathbf{B}(g(t))}{dt}=\boldsymbol{s}(t)\,\,&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key synfigru_wiki:diff:version:1.11a:oldid:5762:newid:5763 --&gt;
&lt;/table&gt;</summary>
		<author><name>Dooglus</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Bline_Speed&amp;diff=5762&amp;oldid=prev</id>
		<title>Dooglus: /* Why does &quot;speed&quot; changes? */</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Bline_Speed&amp;diff=5762&amp;oldid=prev"/>
				<updated>2008-02-15T20:44:16Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Why does &amp;quot;speed&amp;quot; changes?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 20:44, 15 February 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l15&quot; &gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt;\mathbf{B}(t)=(1-t)^3\mathbf{P}_0+3t(1-t)^2\mathbf{P}_1+3t^2(1-t)\mathbf{P}_2+t^3\mathbf{P}_3 \mbox{ , } t \in [0,1].&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt;\mathbf{B}(t)=(1-t)^3\mathbf{P}_0+3t(1-t)^2\mathbf{P}_1+3t^2(1-t)\mathbf{P}_2+t^3\mathbf{P}_3 \mbox{ , } t \in [0,1].&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This equation describes the shape of the curve.&amp;#160; As the &amp;lt;math&amp;gt;t\,\!&amp;lt;/math&amp;gt; parameter increases from zero up to one, the point defined by the equation moves from the Bezier's start towards &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;it's &lt;/del&gt;end. The rate of the motion &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;to &lt;/del&gt;as &amp;lt;math&amp;gt;t\,\!&amp;lt;/math&amp;gt; increases describes the curve's &amp;quot;speed&amp;quot;. Taking the [http://en.wikipedia.org/wiki/Derivative derivative] of this equation yields the &amp;quot;speed&amp;quot;:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This equation describes the shape of the curve.&amp;#160; As the &amp;lt;math&amp;gt;t\,\!&amp;lt;/math&amp;gt; parameter increases from zero up to one, the point defined by the equation moves from the Bezier's start &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;(&amp;lt;math&amp;gt;\mathbf{P}_0&amp;lt;/math&amp;gt;) &lt;/ins&gt;towards &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;its &lt;/ins&gt;end &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;(&amp;lt;math&amp;gt;\mathbf{P}_3&amp;lt;/math&amp;gt;)&lt;/ins&gt;. The rate of the motion as &amp;lt;math&amp;gt;t\,\!&amp;lt;/math&amp;gt; increases describes the curve's &amp;quot;speed&amp;quot;. Taking the [http://en.wikipedia.org/wiki/Derivative derivative] of this equation yields the &amp;quot;speed&amp;quot;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key synfigru_wiki:diff:version:1.11a:oldid:5761:newid:5762 --&gt;
&lt;/table&gt;</summary>
		<author><name>Dooglus</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Bline_Speed&amp;diff=5761&amp;oldid=prev</id>
		<title>Dooglus: /* Bline's parameter's &quot;speed&quot; */</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Bline_Speed&amp;diff=5761&amp;oldid=prev"/>
				<updated>2008-02-15T20:42:18Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Bline&amp;#039;s parameter&amp;#039;s &amp;quot;speed&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 20:42, 15 February 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Bline's parameter's &amp;quot;speed&amp;quot; ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Bline's parameter's &amp;quot;speed&amp;quot; ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you have played enough with Blines, &amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Bline &lt;/del&gt;Vertex&amp;quot; and &amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Bline &lt;/del&gt;Tangent&amp;quot; converts you perhaps have noticed that a change in the &amp;quot;Amount&amp;quot; parameter doesn't always step forward/backwards the same amount.&amp;#160; For example, adding 0.1 to &amp;quot;Amount&amp;quot; doesn't move a &amp;quot;Bline Vertex&amp;quot; by the same distance all the time.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you have played enough with Blines, &amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Convert#BLine_Vertex|BLine &lt;/ins&gt;Vertex&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]]&lt;/ins&gt;&amp;quot; and &amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Convert#BLine_Tangent|BLine &lt;/ins&gt;Tangent&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]]&lt;/ins&gt;&amp;quot; converts you perhaps have noticed that a change in the &amp;quot;Amount&amp;quot; parameter doesn't always step forward/backwards the same amount.&amp;#160; For example, adding 0.1 to &amp;quot;Amount&amp;quot; doesn't move a &amp;quot;Bline Vertex&amp;quot; by the same distance all the time.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Near the bline's &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;vertexes &lt;/del&gt;(or near the curved parts) you'll notice that evenly spaced &amp;quot;Amount&amp;quot; values are either compressed together or expanded away from each other.&amp;#160; Trying to make an object follow a bline will lead to the object changing speeds as it goes along it.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Near the bline's &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;vertices &lt;/ins&gt;(or near the curved parts) you'll notice that evenly spaced &amp;quot;Amount&amp;quot; values are either compressed together or expanded away from each other.&amp;#160; Trying to make an object follow a bline will lead to the object changing speeds as it goes along it.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The problem lies in how Blines are defined and how a position in the Bline changes as &amp;quot;Amount&amp;quot; parameter changes.&amp;#160; I'll refer to the rate of change as the Bline's &amp;quot;speed&amp;quot;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The problem lies in how Blines are defined and how a position in the Bline changes as &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the &lt;/ins&gt;&amp;quot;Amount&amp;quot; parameter changes.&amp;#160; I'll refer to the rate of change as the Bline's &amp;quot;speed&amp;quot;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Why does &amp;quot;speed&amp;quot; changes? ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Why does &amp;quot;speed&amp;quot; changes? ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key synfigru_wiki:diff:version:1.11a:oldid:5760:newid:5761 --&gt;
&lt;/table&gt;</summary>
		<author><name>Dooglus</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Bline_Speed&amp;diff=5760&amp;oldid=prev</id>
		<title>Yoyobuae at 20:29, 15 February 2008</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Bline_Speed&amp;diff=5760&amp;oldid=prev"/>
				<updated>2008-02-15T20:29:15Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 20:29, 15 February 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l69&quot; &gt;Line 69:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 69:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt;\frac{d\mathbf{B}(g(t))}{dt}=\frac{d\mathbf{B}(g(t))}{d(g(t))}\,\frac{dg(t)}{dt}=\boldsymbol{s}(t)\,\,&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt;\frac{d\mathbf{B}(g(t))}{dt}=\frac{d\mathbf{B}(g(t))}{d(g(t))}\,\frac{dg(t)}{dt}=\boldsymbol{s}(t)\,\,&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Expanding the equation like this lets us use the Bline's derivative, by replacing &amp;lt;math&amp;gt;t\,\!&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;g(t)\,\!&amp;lt;/math&amp;gt;.&amp;#160; Next we replace the x and y components into the magnitude condition equation:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Expanding the equation like this lets us use the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;original &lt;/ins&gt;Bline's derivative &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;definition&lt;/ins&gt;, by replacing &amp;lt;math&amp;gt;t\,\!&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;g(t)\,\!&amp;lt;/math&amp;gt;.&amp;#160; Next we replace the x and y components into the magnitude condition equation:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt;\Bigg[\frac{dB_x(g(t))}{d(g(t))}\,\frac{dg(t)}{dt}\Bigg]^2+\Bigg[\frac{dB_y(g(t))}{d(g(t))}\,\frac{dg(t)}{dt}\Bigg]^2=s_{mag}^2(t)&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;math&amp;gt;\Bigg[\frac{dB_x(g(t))}{d(g(t))}\,\frac{dg(t)}{dt}\Bigg]^2+\Bigg[\frac{dB_y(g(t))}{d(g(t))}\,\frac{dg(t)}{dt}\Bigg]^2=s_{mag}^2(t)&amp;lt;/math&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l83&quot; &gt;Line 83:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 83:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;All that is left is to solve the equation. It is quite complex and as I said before, the differential equation that we got is non-linear. This makes it hard to find &amp;lt;math&amp;gt;g(t)\,\!&amp;lt;/math&amp;gt; in a clear formula.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;All that is left is to solve the equation. It is quite complex and as I said before, the differential equation that we got is non-linear. This makes it hard to find &amp;lt;math&amp;gt;g(t)\,\!&amp;lt;/math&amp;gt; in a clear formula.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;But even such a complex equation is easy to solve numerically. Keeping in mind that what we want is simply the value of &amp;lt;math&amp;gt;g(t)\,\!&amp;lt;/math&amp;gt; so we can plug into &amp;quot;Amount&amp;quot;.&amp;#160; A numerical solution of the equation gives us just that, the value of &amp;lt;math&amp;gt;g(t)\,\!&amp;lt;/math&amp;gt; at certain intervals.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;But even such a complex equation is easy to solve numerically. Keeping in mind that what we want is simply the value of &amp;lt;math&amp;gt;g(t)\,\!&amp;lt;/math&amp;gt; so we can plug &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;it &lt;/ins&gt;into &amp;quot;Amount&amp;quot;.&amp;#160; A numerical solution of the equation gives us just that, the value of &amp;lt;math&amp;gt;g(t)\,\!&amp;lt;/math&amp;gt; at certain intervals.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The [http://en.wikipedia.org/wiki/Runge-kutta Runge-Kutta] method serves this purpose quite well, and it's quite simple also.&amp;#160; All we need is to evaluate the derivative of the function that we need to find, and feed the values into the Runge-Kutta method.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The [http://en.wikipedia.org/wiki/Runge-kutta Runge-Kutta] method serves this purpose quite well, and it's quite simple also.&amp;#160; All we need is to evaluate the derivative of the function that we need to find, and feed the values into the Runge-Kutta method.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key synfigru_wiki:diff:version:1.11a:oldid:5759:newid:5760 --&gt;
&lt;/table&gt;</summary>
		<author><name>Yoyobuae</name></author>	</entry>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Bline_Speed&amp;diff=5759&amp;oldid=prev</id>
		<title>Yoyobuae: Adding an explanation page to a method to ensure things move at certain speed when following a Bline</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Bline_Speed&amp;diff=5759&amp;oldid=prev"/>
				<updated>2008-02-15T20:20:58Z</updated>
		
		<summary type="html">&lt;p&gt;Adding an explanation page to a method to ensure things move at certain speed when following a Bline&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Bline's parameter's &amp;quot;speed&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
If you have played enough with Blines, &amp;quot;Bline Vertex&amp;quot; and &amp;quot;Bline Tangent&amp;quot; converts you perhaps have noticed that a change in the &amp;quot;Amount&amp;quot; parameter doesn't always step forward/backwards the same amount.  For example, adding 0.1 to &amp;quot;Amount&amp;quot; doesn't move a &amp;quot;Bline Vertex&amp;quot; by the same distance all the time.&lt;br /&gt;
&lt;br /&gt;
Near the bline's vertexes (or near the curved parts) you'll notice that evenly spaced &amp;quot;Amount&amp;quot; values are either compressed together or expanded away from each other.  Trying to make an object follow a bline will lead to the object changing speeds as it goes along it.&lt;br /&gt;
&lt;br /&gt;
The problem lies in how Blines are defined and how a position in the Bline changes as &amp;quot;Amount&amp;quot; parameter changes.  I'll refer to the rate of change as the Bline's &amp;quot;speed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Why does &amp;quot;speed&amp;quot; changes? ==&lt;br /&gt;
&lt;br /&gt;
Firstly, a Synfig Bline is composed of several bezier sections.  Each segment is a cubic bezier line.  This sections are joined back to back, allowing for arbitrarily complex shapes.  All the properties that for a single section, also hold true for any number of sections. So I'm gonna focus on Blines with a single section, in other words, Blines with only two vertexes.&lt;br /&gt;
&lt;br /&gt;
A Bline with a single section reduces to a [http://en.wikipedia.org/wiki/B%C3%A9zier_curve#Cubic_B.C3.A9zier_curves Cubic Bezier] defined like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\mathbf{B}(t)=(1-t)^3\mathbf{P}_0+3t(1-t)^2\mathbf{P}_1+3t^2(1-t)\mathbf{P}_2+t^3\mathbf{P}_3 \mbox{ , } t \in [0,1].&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This equation describes the shape of the curve.  As the &amp;lt;math&amp;gt;t\,\!&amp;lt;/math&amp;gt; parameter increases from zero up to one, the point defined by the equation moves from the Bezier's start towards it's end. The rate of the motion to as &amp;lt;math&amp;gt;t\,\!&amp;lt;/math&amp;gt; increases describes the curve's &amp;quot;speed&amp;quot;. Taking the [http://en.wikipedia.org/wiki/Derivative derivative] of this equation yields the &amp;quot;speed&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\frac{d\mathbf{B}(t)}{dt}=&lt;br /&gt;
  (1-t)^2&lt;br /&gt;
  [&lt;br /&gt;
    3&lt;br /&gt;
    (&lt;br /&gt;
      \mathbf{P}_1&lt;br /&gt;
      -&lt;br /&gt;
      \mathbf{P}_0&lt;br /&gt;
    )&lt;br /&gt;
  ]&lt;br /&gt;
  +&lt;br /&gt;
  2t(1-t)&lt;br /&gt;
  [&lt;br /&gt;
    3&lt;br /&gt;
    (&lt;br /&gt;
      \mathbf{P}_2&lt;br /&gt;
      -&lt;br /&gt;
      \mathbf{P}_1&lt;br /&gt;
    )&lt;br /&gt;
  ]&lt;br /&gt;
  +&lt;br /&gt;
  t^2&lt;br /&gt;
  [&lt;br /&gt;
    3&lt;br /&gt;
    (&lt;br /&gt;
      \mathbf{P}_3&lt;br /&gt;
      -&lt;br /&gt;
      \mathbf{P}_2&lt;br /&gt;
    )&lt;br /&gt;
  ]&lt;br /&gt;
\mbox{ , }t \in [0,1].&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may have noticed that this equation is equivalent to a [http://en.wikipedia.org/wiki/B%C3%A9zier_curve#Quadratic_B.C3.A9zier_curves Quadratic Bezier]. This tells us that the &amp;quot;speed&amp;quot; can and does change as the &amp;lt;math&amp;gt;t\,\!&amp;lt;/math&amp;gt; parameter changes.&lt;br /&gt;
&lt;br /&gt;
== Adjusting a Bline's &amp;quot;speed&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Our objective is now to compensate the derivative to achieve a desired &amp;quot;speed&amp;quot;. We cannot change the control points to the curve without changing it's shape. The only other thing we can change is the parameter &amp;lt;math&amp;gt;t\,\!&amp;lt;/math&amp;gt;. Therefore, we define a function &amp;lt;math&amp;gt;g(t)\,\!&amp;lt;/math&amp;gt; so that:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d\mathbf{B}(g(t))}{dt}=\boldsymbol{s}(t)\,\,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;\boldsymbol{s}(t)&amp;lt;/math&amp;gt; is a vector &amp;lt;math&amp;gt;(s_x(t),s_y(t))\,\!&amp;lt;/math&amp;gt; that defines the desired speed as a function of &amp;lt;math&amp;gt;t\,\!&amp;lt;/math&amp;gt;. The curve needs to move in a whole range of directions as the curve describes its shape. Our objective is only to control its magnitude. This magnitude condition can be expressed as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;s_x^2(t)+s_y^2(t)=s_{mag}^2(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;s_{mag}(t)\,\!&amp;lt;/math&amp;gt; is a function defining the desired &amp;quot;speed&amp;quot; magnitude.&lt;br /&gt;
&lt;br /&gt;
We can expand our first equation a bit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d\mathbf{B}(g(t))}{dt}=\frac{d\mathbf{B}(g(t))}{d(g(t))}\,\frac{dg(t)}{dt}=\boldsymbol{s}(t)\,\,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Expanding the equation like this lets us use the Bline's derivative, by replacing &amp;lt;math&amp;gt;t\,\!&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;g(t)\,\!&amp;lt;/math&amp;gt;.  Next we replace the x and y components into the magnitude condition equation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\Bigg[\frac{dB_x(g(t))}{d(g(t))}\,\frac{dg(t)}{dt}\Bigg]^2+\Bigg[\frac{dB_y(g(t))}{d(g(t))}\,\frac{dg(t)}{dt}\Bigg]^2=s_{mag}^2(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rearranging we obtain an [http://en.wikipedia.org/wiki/Differential_equation#Types_of_differential_equations ordinary non-linear differential equation]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{dg(t)}{dt}=\frac{s_{mag}(t)}{\sqrt{\Big[\frac{dB_x(g(t))}{d(g(t))}\Big]^2+\Big[\frac{dB_y(g(t))}{d(g(t))}\Big]^2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Solving this equation yields a function &amp;lt;math&amp;gt;g(t)\,\!&amp;lt;/math&amp;gt; such that the curve's &amp;quot;speed&amp;quot; is dictated by the function &amp;lt;math&amp;gt;s_{mag}(t)\,\!&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Solving the equation ==&lt;br /&gt;
&lt;br /&gt;
All that is left is to solve the equation. It is quite complex and as I said before, the differential equation that we got is non-linear. This makes it hard to find &amp;lt;math&amp;gt;g(t)\,\!&amp;lt;/math&amp;gt; in a clear formula.&lt;br /&gt;
&lt;br /&gt;
But even such a complex equation is easy to solve numerically. Keeping in mind that what we want is simply the value of &amp;lt;math&amp;gt;g(t)\,\!&amp;lt;/math&amp;gt; so we can plug into &amp;quot;Amount&amp;quot;.  A numerical solution of the equation gives us just that, the value of &amp;lt;math&amp;gt;g(t)\,\!&amp;lt;/math&amp;gt; at certain intervals.&lt;br /&gt;
&lt;br /&gt;
The [http://en.wikipedia.org/wiki/Runge-kutta Runge-Kutta] method serves this purpose quite well, and it's quite simple also.  All we need is to evaluate the derivative of the function that we need to find, and feed the values into the Runge-Kutta method.&lt;br /&gt;
&lt;br /&gt;
Let's try a simple case, constant speed. If &amp;lt;math&amp;gt;s_{mag}(t)\,\!&amp;lt;/math&amp;gt; is a constant value, then it would need to be equal to the Bline's length, so that as the &amp;lt;math&amp;gt;t\,\!&amp;lt;/math&amp;gt; goes from 0.0 up to 1.0, the curve moves from the start to the end.  Too little speed and the curve won't reach the end when &amp;lt;math&amp;gt;t\,\!&amp;lt;/math&amp;gt; reaches 1.0.  Too much and the curve will go past the end when &amp;lt;math&amp;gt;t\,\!&amp;lt;/math&amp;gt; reaches 1.0.&lt;br /&gt;
&lt;br /&gt;
Conveniently, this method also allows to find a Bline's length. If we assume &amp;lt;math&amp;gt;s_{mag}(t)=1\,\!&amp;lt;/math&amp;gt; then the curve will reach it's end when &amp;lt;math&amp;gt;t=LENGTH\,\!&amp;lt;/math&amp;gt;, where LENGTH is the Bline's length.&lt;/div&gt;</summary>
		<author><name>Yoyobuae</name></author>	</entry>

	</feed>