• aboutabout
  • servicesservices
  • worksworks
  • mediamedia
  • contactcontact
  • homeサイトトップ
  • about会社概要
  • services業務内容
  • works実績紹介
  • mediaメディア
  • contactお問い合わせ
ja/

media

メディア

  1. サイトトップ
  2. メディア
  3. デザインの記事
  4. Illustratorでスクリプトを使って関数曲線のバラ曲線を描いてみる

Illustratorでスクリプトを使って関数曲線のバラ曲線を描いてみる

  • 2021.07.25
  • デザイン
  • Illustrator
今回はIllustratorのスクリプト機能を使って幾何学的な図形を描いていきます。先日、クライアントワークでデザイン素材を作成する際に、とても複雑な図形を作成する機会があり、普通にパスで描くには難しいと判断し、色々と調べてみるとその図形は「バラ曲線」と呼ばれるものだそうで、Illustratorでスクリプトを読み込ませて関数で描く方法で作成しました。その時の備忘録として残しておきたいと思います。   今回作成する図形はバラ曲線と呼ばれるもので数学に疎い私はあまりよくわかっていないのですが、、見た目が花のような形を描く平面座標上にある曲線とのことです。この曲線は関数によって座標が導き出されることで描かれており、ここではJavaScriptを使ってバラ曲線の座標を計算する関数を作成していきます。 【バラ曲線】 https://ja.wikipedia.org/wiki/%E3%83%90%E3%83%A9%E6%9B%B2%E7%B7%9A   Illustratorでは各種スクリプトを読み込みことでパスを描画させることができる「スクリプト機能」があり、それを使うことで複雑な幾何学模様も正確に描画することができます。今回はバラ曲線を例に作成していますが、それ以外のものも関数さえ用意できれば色々と作成することができます。   それでは、まず読み込ませるスクリプトを用意していきます。JavaScriptで記述しますが新しいもの(ES6など)での表記はできない点に注意しておきます。まずキャンバス上のx座標とy座標が格納される配列を用意します。そして、バラ曲線の形を変えるための変数を3つ用意します。バラ曲線ではnとdの値によって色んな形に変化します。(詳しくは上記サイトを参考に)また複雑なものになってくると、周回数を重ねないと描けないものもあるので、その変数も用意しておきます。
var anchorPoint = [];
var n = 1, 
    d = 3, 
    l = 2;

// バラ関数の座標を計算
for (var angle = 0; angle <= 360; angle += 1) {
  var radian = angle * Math.PI * l / 180;
  var x = Math.sin(( n / d ) * radian) * Math.cos(radian);
  var y = Math.sin(( n / d) * radian) * Math.sin(radian);
  anchorPoint.push([x * 100, y * 100]);
}

// パスの描画処理
var documentObject = activeDocument;
var pathObject = documentObject.pathItems.add();
pathObject.setEntirePath(anchorPoint);
function setRGBColor(r, g, b){
  var color = new RGBColor();
  color.red = r;
  color.green = g;
  color.blue = b;
  return color;
}
pathObject.fillColor = setRGBColor(255, 0, 0); 
pathObject.filled = false;
pathObject.stroked = true;
pathObject.strokeWidth = 2;
  バラ関数の座標計算部分では1周(360度)の間の全ての角度のラジアン値を算出し、それを元に座標を導き出していきます。そのためループで処理を加えていきます。そして、xとy座標をそれぞれバラ曲線の条件に合わせて計算し、アンカーポイント用の配列に値を格納していきます。この時、座標は1px単位となるので、大きいサイズで書き出ししたい場合には適宜倍率をかけておくといいですね。   そして、算出したアンカーポイントを元にキャンバスへ描画していく処理を用意していきます。ここではIllustrator独自のメソッドを使っていくことで座標を元にキャンバスにパスとして描画できたり、パスの線の太さや塗りを指定することができます。ただし、色の指定はデフォルトで用意されいないため専用の関数を用意するか、RGBColorを使って直接指定してあげる必要があります。   これでスクリプトが完成しましたので、引き続きIllustrator上で作業を進めていきます。新規ドキュメントを作成したら、「ファイル」→「スクリプト」→「その他のスクリプト」を選択し、先ほど作成したスクリプトファイルを読み込みます。   そうするとこのように関数で計算された座標にパスとして描かれます。パスの塗りや線などもの設定しているとここで反映されているかと思います。   関数曲線で描かれたパスは、特性上どうしてもアンカーポイントが多くなってしまいます。そのままではわかりにくいですが、パスを変形する上で扱いづらい場面も出てきます。   そのため、「パスの単純化」の作業を行なっておくといいですね。要素を選択した状態で右クリックをして表示されるメニューから「単純化」を実施します。この際にアンカーポイントの数を調整できますが、基本はデフォルトの設定で大丈夫でしょう。   単純化することで、このように必要最小限のアンカーポイントに変更されます。これでパスの変形がしやすくなりましたね。パスのハンドルを使って調整できるようになります。   上記関数の変数の値を変えることで色んなバラ曲線の図形を描くことができます。複雑な幾何学図形もこのように関数を使うと正確に作成することができますね。私自身は残念ながら数学に詳しくないのですが、JavaScriptを活用してHTML上に描画するようなのも、また後日試してみたいと思います。  
  今回はIllustratorのスクリプト機能を使って関数曲線であるバラ曲線を描いてみました。デザイン素材や背景の模様として、またロゴマークの作成なんかにも役に立つのではないでしょうか。このような複雑な図形を作成できるのもIllustratorの強みですね。これを機に数学を勉強しなおしてみるのもいいかもしれませんね。。   (参考にさせて頂いたサイト) Rose(mathematics) イラレでもサインカーブなど数学的な曲線を描きたい!JSでできるじゃん!! 直線を作成する
XでシェアLINEで送るはてブに追加

この記事を書いた人オガワ シンヤ

合同会社デザインサプライ代表兼CEO / ディレクター・ウェブデザイナー・フロントエンドエンジニアをやっています。「ウェブとデザインでヒト・モノ・サービスを繋げ新しい価値を生み出す」をコンセプトに日々奮闘中!制作中はダイエットコーラとチョコレートが欠かせないアラフォーWebクリエイター。

Sponsored Link

  • Showcase
  • Startify UI
  • Functional Gradation Generator
  • Coloooors

keyword search

categories

  • デザイン(30)
  • Photoshop(26)
  • ワークショップ(24)
  • コーディング(18)
  • Sketch(16)
  • Illustrator(12)
  • カラースキーム(10)
  • タイポグラフィ(8)
  • Adobe その他(8)
  • フォトグラフィ(7)
  • Lightroom(4)
  • WordPress(4)
  • ナレッジ(4)
  • サイト運営(3)
  • Figma(2)
  • AfterEffects(2)
  • InVision(1)
  • Premiere(1)

recent articles

  • Figmaで柔らかな印象のメッシュグラデーションを作成する
    read more

    Figmaで柔らかな印象のメッシュグラデーションを作成する

    2022.12.09/Figma
  • Photoshopで光沢と透明感のあるぷるっとしたテキストを作成する
    read more

    Photoshopで光沢と透明感のあるぷるっとしたテキストを作成する

    2022.09.23/Photoshop
  • Photoshopでサイバー感のあるレトロフューチャーなイメージを作成する
    read more

    Photoshopでサイバー感のあるレトロフューチャーなイメージを作成する

    2022.06.10/Photoshop
  • デザイン制作に数学的なアプローチを取り入れてみる #1(グラデーション、カラースケール)
    read more

    デザイン制作に数学的なアプローチを取り入れてみる #1(グラデーション、カラースケール)

    2022.06.03/デザイン
  • 【実践テクニック#6】ウェブデザインやバナー制作でグラデーションマスクや光彩の効果を扱う時の注意点
    read more

    【実践テクニック#6】ウェブデザインやバナー制作でグラデーションマスクや光彩の効果を扱う時の注意点

    2022.04.22/デザイン
  • 安さやチープな印象を強調させるデザインを考えてみる
    read more

    安さやチープな印象を強調させるデザインを考えてみる

    2022.04.01/デザイン
  • 次の記事
  • 一覧に戻る
  • 前の記事

まだ依頼内容が決まっていなくても、ご相談ください。

課題の整理や小さな検証、UI/UX・フロントエンドの部分的な支援から始められます。

お問い合わせやご相談はこちらから

Webサイト・プロダクトの企画設計/UI・UXデザイン/フロントエンド開発合同会社デザインサプライ(DesignSupply. LLC)

Office:大阪府大阪市天王寺区清水谷町3-22
Email:info@designsupply-web.com
home
  • サイトトップ
about
  • 3つのポリシー
  • 経営理念
  • 代表・クリエイター紹介
  • 会社概要
services
  • ビジネス・プロダクト支援
  • UI/UX・フロントエンド開発支援
  • プロジェクトの進め方・支援体制
  • エデュケーション事業
works
  • 開発プロジェクト支援
  • クリエイティブ制作
  • 自社プロダクト
media
  • デザイン
  • プログラミング
  • マーケティング
  • Web開発
  • 写真・動画制作
contact
  • お問い合わせ
news
  • インフォメーション
privacy
  • プライバシーポリシー

WE THINK WITH YOU, DESIGN FOR PEOPLE, AND BUILD WHAT WORKS.

WE THINK WITH YOU, DESIGN FOR PEOPLE, AND BUILD WHAT WORKS.

© 2013 - 2026 DesignSupply.LLC
サイトトップへ
contact