問題タブ [cgpath]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
6656 参照

ios - MKOverlayPathView を使用してパスを作成するには?

私は Apple の iOS Class Reference ドキュメントを見てきましたが、残念ながら賢明ではありません。私は彼らのサンプルコードをダウンロードしましKMLViewerたが、彼らはそれを過度に複雑にしました...私が本当に知りたいのは、パスを生成してMKMapView. ドキュメントでは の使用について説明さCGPathRefれていますが、その方法については実際には説明されていません。

0 投票する
2 に答える
6671 参照

cocoa - 何百万もの点で線を引く効率的な方法

Cocoa で、さまざまなズーム オプションを備えたオーディオ波形エディターを作成しています。幅を最大にすると、曲全体の波形が表示されます (最大 1,000 万サンプルが表示されます)。最も狭い範囲では、音波のピクセル精度の表現が表示されます (1 ビューで最大 1,000 サンプル)。これらのズーム レベル間をスムーズに移行できるようにしたいと考えています。Ableton Live などの一部の商用エディターは、非常に安価な方法でこれを行っているようです。

私の現在の実装は、希望するズーム範囲を満たしていますが、非効率的で途切れ途切れです。このデザインは、クォーツを使用した波形の描画に関する次の優れた記事に大きく影響を受けています。

http://supermegaultragroovy.com/blog/2009/10/06/drawing-waveforms/

さまざまな削減レベルでオーディオ ファイル用に複数の CGMutablePathRef を作成します。完全にズームアウトすると、x 千サンプルごとに 1 つのポイントに縮小されたパスを使用します。完全にズームインすると、すべてのサンプルのポイントを含むそのパスを使用します。削減レベルの間にいるときは、パスを水平方向にスケーリングします。これにより機能しますが、それでもかなりコストがかかり、削減レベル間を移行するときにアーティファクトが表示されます。

これをより安価にする方法についての 1 つの考えは、アンチエイリアシングを取り除くことです。私のエディタの波形はアンチエイリアスされていますが、Ableton の波形はそうではありません (以下の比較を参照)。 ここに画像の説明を入力 ここに画像の説明を入力

CGMutablePathRef のアンチエイリアシングをオフにする方法がわかりません。Cocoa の世界で CGMutablePathRef に代わるアンチエイリアスのない代替手段はありますか? そうでない場合、巨大な線をより効率的に描画するためのコースに私を設定する可能性のある OpenGL クラスまたはサンプル コードを知っている人はいますか?

2014 年 1 月 21 日更新:まさに私が探していた機能を備えた優れたライブラリがあります: https://github.com/syedhali/EZAudio

0 投票する
1 に答える
592 参照

iphone - iPhoneの線グラフでグラフ上のポイントを取得する方法

こんにちは、みんな、

折れ線グラフに取り組んでいます。折れ線グラフを完璧に描くことができます。でも、下の画像のような効果が欲しいのです。

ここに画像の説明を入力してください

スライダー効果が欲しいです。CGPathを使用してグラフパスを保存しています。スライダーがグラフ上を移動する場合は、値に応じて上部ラベルに表示する必要があります。

私を助けてください。

0 投票する
2 に答える
1869 参照

serialization - 複数の CAAnimation を順次結合

私は CATransactions について読んでいて、これが私の問題を解決するのに役立つかもしれないと考えました。

これは私がやりたくないことです。同じレイヤーに 3 つのアニメーションがあり、それぞれに独自の長さがあります。CAKeyframeAnimation と CGMutablePathRef を使用してアニメーションを作成します。

たとえば、次のように言います。

  • anim1 -> 持続時間 5 秒
  • アニメ2→3秒
  • アニメ3→10秒

今、それらを順番にシリアライズしたいと思います。CAAnimationGroup を使用しようとしましたが、アニメーションが同時に実行されます。CATransaction について読みましたが、解決策はありますか? 少し例を挙げていただけますか?

手伝ってくれてありがとう !

0 投票する
2 に答える
2678 参照

uikit - 複数の CGpath から CAShapeLayer を構築する

私はパスから彼の形を取る CAShapeLayer を持っています。これにより、移動や回転などの操作が可能なレイヤー オブジェクトが作成されます。私の問題は、レイヤーオブジェクトを複数のパスで構成する必要があることです。たとえば、米国の地図を想像してください。メインシェイプとアラスカがあります。両方の形状は接続されていませんが、同じエンティティであり、レイヤーを移動すると米国とアラスカの両方が一緒に移動するように、単一の CAShapeLayer 内の単一のオブジェクトである必要があります。

0 投票する
2 に答える
2151 参照

uikit - CAShapeLayer のユーザー操作が遅い

私は CAShapeLayer を持っており、ユーザーの指に導かれて画面上を移動するという単純なタスクを実行する必要があります。

問題は、動きが遅すぎることです。レイヤーは動きますが、ラグがあり遅く感じます。

UIImage が移動される別のテスト アプリがあり、遅延がまったくなく、画像が即座に移動します。

これを克服するにはどうすればよいですか?

ありがとう!

0 投票する
2 に答える
949 参照

iphone - CGPoints からマスクされた CGPath

私はこれを構築しようとしています: ここに画像の説明を入力

白い背景が実際に透明な場所。CGPath を設定された領域にクリップする方法は知っていますが、塗りつぶされた CGPath から領域を差し引く必要があるため、これは逆のようです

正しい方法は、CGPath から外側の円全体を差し引いてから、CGPoints に小さな円を描くことだと思いますが、前者を実行する方法がわかりません。誰かが私を正しい方向に向けることができますか?

0 投票する
1 に答える
1799 参照

ios - CGPathに合わせてUIViewのサイズを変更します

ユーザーがランダムなCGPathを追加できるUIViewサブクラスがあります。CGPathは、UIPanGesturesを処理することによって追加されます。

UIViewのサイズをCGPathを含む可能な限り最小限に変更したいと思います。UIViewサブクラスでは、sizeThatFitsをオーバーライドして、最小サイズを次のように返します。

これは期待どおりに機能し、UIViewは返された値にサイズ変更されますが、CGPathも比例して「サイズ変更」され、ユーザーが最初に描画したものとは異なるパスになります。例として、これはユーザーが描いたパスのあるビューです。

描かれたパス

そして、これはサイズ変更後のパスを含むビューです。

ここに画像の説明を入力してください

パスを「サイズ変更」せずにUIViewのサイズを変更するにはどうすればよいですか?

0 投票する
1 に答える
268 参照

iphone - CATiledlayer が CGPath を歪める

CATiledlayers と UIScrollviews を使用して、さまざまな詳細レベルで CGPaths を描画しています。大きな絵(4000x4000)を描いています。iPhone では、これらの大きな写真の画像が歪んでしまいます。

私は最終的に解決策を見つけました。私の間違いは、タイル サイズを描画している画像のサイズに設定したことです (どこかの PDF サンプル デモからコピーしました)。解決策は、tileSize を最大 2000x2000 に設定することです。

0 投票する
7 に答える
18667 参照

iphone - SVG を UIBezierpaths、NSBezierpaths、CGPaths にインポート/解析する方法は?

ベクター描画プログラムから ios 環境にパスをインポートしようとしています。それらを CGpaths または UIbezierpaths に入れたいと思います。Adobe Illustrator からパスをインポートすることに最も興味があります。最良の方法は、svg として保存してからインポートするようです。

パスを記述した、エクスポートされた SVG ファイルを解析するためのリソースをいくつか見つけました。ただし、私が見つけたものはすべて絶対パスのみを扱い、相対パスは扱いません。以下のパスには、大文字の C と小文字の C があります。大文字の C (絶対パス) を解析する方法は知っていますが、小文字の C (相対パス) を解析する方法がわかりません。

svg ファイルを ios/cocoa にインポートするためのパーサーの作成に関するヘルプを探しています。何週間もインターネットを検索して、この判断が必要だと思います。

これは、iPhone アプリにインポートしたいパスの例です。画像をインポートするつもりはありません。パス自体が必要です。だから、私はそれを操作することができます。どんな助けでも大歓迎です。

これがすべて絶対パスであれば、今すぐ解決できます。私を本当に混乱させているのは、相対 (つまり、小文字 (c) のパス) です。