Little Strange Software

スマホアプリの開発を行う LittleStrangeSoftware のブログです。

【SVG】イマイチよく分からないベジェ曲線とお近づきになりたいツール

 どうも!LSSです!!

 

先日、

 

の記事でベジェ曲線というモノに触れましたが、これがやはり、文章で説明しづらい・感覚的につかみづらい!

 

というわけで、LSS自身もちょっとベジェ曲線にお近づきになるべく、JavaScriptの力を借りてベジェれるものを作って遊んでみる事にしました!

 

 

ベジェ曲線とお近づきになりたいツール

 

 

 この四角形の枠組の中で、マウスクリックすると、
「クリックした位置を制御点とした、座標250,50~50,350の曲線」
が描かれます。

 

ついでに、そのベジェ曲線を書き出したい時のコードも出てきます。

 

 

一応、ツールのコードも載せておきます。

コード

<p>[]<svg xmlns="http://www.w3.org/2000/svg" width="300" height="400" viewbox="0 0 300 400" id="gamen" style="border: 1px solid black;"></svg>[]</p>
<div id="gamen2" style="background-color: #eeeeee; padding: 0.6em; border-radius: 5px;"> </div>
<script>// <![CDATA[
gamen.addEventListener("click",mm,false);
function mm(ev){
txt='<path d="M 250 50 Q '+ev.offsetX+' '+ev.offsetY+' 50 350" stroke="black" stroke-width="3" fill="none"></path>';
gamen.innerHTML=txt;
txt='&lt;svg xmlns="http://www.w3.org/2000/svg" width="300" height="400" viewbox="0 0 300 400" id="gamen" style="border: 1px solid black;"&gt;<br/>&lt;path d="M 250 50 Q '+ev.offsetX+' '+ev.offsetY+' 50 350" stroke="black" stroke-width="3" fill="none"&gt;&lt;/path&gt;<br/>&lt;/svg&gt;';
gamen2.innerHTML=txt;
}
// ]]></script>

※2020/11/13 少しコード修正しました。

 

 

スクリプト的には、

↑ここで行った実験のうち、offset座標を利用しています^^  

 

あとがき

ベジェ曲線の「制御点」。

やっぱり「そっちに引っ張られる感じ」としか表現のしようがない感じですね^^;

理論としては確立されていて、計算式もあるそうなのですが、実はまだ見てもいませんw

 

 

 

ってなとこで、今回はこのへんで!

次回もまた、よろしくお願いします^^