回答:
これはInkscapeの部分的なソリューションです。Illustratorのもう1つの答えは、落書きの効果をランダムでない方法で使用して、必要な直線のジグザグの塗りつぶしを得る方法であり、その結果、わずかな手動の修正(=形状が複雑な場合はギャップの塗りつぶし)のみが必要です
Inkscapeにはそのような効果はありません。粗いハッチ塗りつぶしを生成するパス効果がありますが、結果は非常に粗くなります。理論的には、Illustratorの落書きと同じにすることができますが、必要な調整機能と精度がありません。
質問者がコメントで1つのヒントを与えました:プロッターメーカー(= EggBot)によるサードパーティの拡張機能があり、類似した塗りつぶしパターンを生成できます。持っていないのでスキップします。それらを入手しようとしましたが、Inkscapeが標準的な方法でインストールされていないため、インストールが停止しました。
上半分をXY座標でY = f(x)として表すことができるように形状が垂直対称である場合、fはPython数学関数と演算子で記述された数式であり、InkscapeのFunction Plotter拡張機能でジグザグの塗りつぶしをプロットできます。例として、あなたのサークルをチェックします。
三角形のジグザグ曲線の正確な式は複雑なので、私は少しごまかさなければなりません。トリッキーなモジュロ演算が必要です。Pythonの関数でそれを書く方法がわかりません。有能なプログラマーなら、おそらくすぐにそれを言えるでしょう。
しかし、Pythonには、サイン、パイ、平方根などの一般的に知られている(= Excelと同じ)基本的な数学の要素があります。結果の曲線を後で直線に変換できるため、これらを使用します。
高ズームビューは、実際にはソフトカーブであることを示しています。
それは作るために四角形を描画し、goto文の拡張機能>>ファンクションプロッタをレンダリングします。私は正方形がxとyの両方を-1から+1の範囲で表すことを選択しました。
機能は電子機器から取得されます。振幅変調された正弦波です(キャリアなし!)。エンベロープ部分sqrt(1-x * x)は半円です。最後の数値40は、正弦曲線の完全なサイクルが40あることを定義します。概算で合計161ノードになるように定義されています。すべてのゼロクロッシングとピークにノードがあります。
さらに100サイクルにする場合は、40を100に、161を401に変更する必要があります。
すべてのノードをコーナーポイントに変換すると、計算せずに三角形の形になります。Extension Modify Path> Flatten Bezierがその仕事をします。以下はフラット化の例です。
Flattenを適用してから、noneツールで左端と右端を除くすべてのゼロラインノードを選択し、Delキーを押します。次に、再び平坦化して完了です。直線のみで、余分なノードはありません。
それをプレーンなSVGとして保存して、Inkscapeのすべての部分を削除します(結果はパスであるため、何もないはずです。関数はありません)。
関数のプロット方法は実用的ではないので、他の方法を試します。平行な直線が塗りつぶされている場合(=ジグザグなし)、一連の線を並べてクリッピングマスクを設定するか、線を形状で破壊的に分割できます。
Inkscapeには、一連の直線を作成する方法がいくつかあります
3番目の方法が最も簡単です。中間行をグループとして生成します。
線を1つのオブジェクトとして確実に保持するには、線をグループ化解除して結合する必要があります(パス>結合)。メンバーを個別に選択できるため、グループは簡単に破損します。さらに、多くのパス操作はグループでは機能せず、単一のパスまたは結合されたパスが必要です。
次の画像は、シェイプがライン上に配置され、オブジェクト>クリップ>セットが適用されたときの結果を示しています。
クリッピングはいつでも取り戻すことができます。元のパーツはそのままで、部分的にのみ非表示になっています。ノードがないため、行の見かけの端に何かをスナップする方法はありません。このため、線を破壊的に分割するか、クリッピングを行わないでください。パスの交点へのスナップは、Inkscapeでは非常にうまく機能します。
ペンで三角形のジグザグを描くことにより、スナップを利用できます。
青いジグザグは、1つの交差点ごとに1回クリックするだけで、ペンで作成されます。約1分かかりました。青いジグザグは独立した単一のパスです。
線分sの半分が垂直で残りの半分が傾いていることが邪魔な場合は、ジグザグを描く前に線を回転させることで修正されます。
「パス>カットパスなどを使用して線を分割する場合、ピースを1つずつではなく自動的にジグザグに組み合わせることができます。理論的にはYESです。しかし、結果が不確かになる困難があります。
最初に、同じ黒い曲線で線を分割します。上部の形状は、下にある線が結合されている場合、それらを実際に分割します(パス>結合)。「タッチした場合に選択」モード(= Alt +ドラッグ)で通常の選択ツールを使用することにより、残りを簡単に選択および削除できます。
次に、すべてのラインの下端ノードを選択し、ノード機能「選択したノードに参加」を試すことができます。残念ながら結果は予想外です:
終了接続操作に参加するすべてのノードは、束になっていると、予測できない順序を選択します。接続は1つずつ行う必要があります。上記のように、ペンでジグザグを描くのがはるかに簡単です。
形状のエンベロープを数学的に説明する方法を見つけることができれば、関数にsin
短い周期を掛けることができます。ディスクの例でsin(100*x) * sqrt(1 - x**2)
は、正常に動作するようです:
ここでは、Liveの例あなたはスライダーでパラメータを変更することができているが、。
gnuplot、matplotlib、またはこのWebサイトから関数をSVGとしてプロットすることができます。