問題タブ [quartz-2d]

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 に答える
797 参照

iphone - Quartz 2D ストロークの配置

描画モードとして kCGPathFillStroke を使用する場合、ストロークの配置をデフォルトの中央から調整することは可能ですか?

たとえば、以下を使用して閉じたパスを描画する場合:

ストロークは、描画されたパスの外側 50%/内側 50% にあります。ストロークの色には不透明でないアルファがあるため、最終的な効果は望ましくありません。ストロークがすべて内側または外側にあるようにします。

これを行う唯一の可能な方法は、パスを再構築し、ストローク幅の 50% 縮小することです。

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

iphone - 問題 : iPhone のグラフィックがおかしくなる!

最近、本当に奇妙な問題に直面しました。私はタイムテーブル オーガナイザーをやっており、Quarz 2D を使用して DayViewController で各イベントを描画し、「ガラス効果」の画像 (PNG) を追加します。

しかし、ランダムに、日を切り替えると、レイアウトが非常に悪くなります。良い外観と悪い外観の下を見るためのリンクがあります: http://toucotton.ifrance.com/image.jpg


なぜこれが起こっているのかわかりません。表示されているものの半分に、過去の出来事の色が部分的に重ねられていることがあります。フラッシュする必要があるCore Graphicsのキャッシュなどはありますか?? 実際には、バックグラウンド スレッドで DayViewController を作成しますが、そのビューをメイン スレッドのスーパービューに追加します ...

そんな奇妙なものを見たことがあるかどうか知りたかっただけです?! さようなら、そして前もって感謝します。

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

iphone - ここにメモリ管理の問題がありますか?

このコードには何か問題があるはずです:

これを使用すると、Xcode から次のエラー メッセージが表示されます。

malloc: * オブジェクト 0x103f000 のエラー: 解放されるポインターが割り当てられませんでした *デバッグするために malloc_error_break にブレークポイントを設定します

そこにメモリ管理エラーは見られません。他の誰かですか?

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

iphone - これは、iPhone ゲームのゲーム ループを実行する良い方法ですか?

iPhone開発は初めてですが、2Dゲームを構築しようとしています。私は本に従っていましたが、それが作成したゲームループは基本的に次のように述べていました:

理由は、これが 30fps で実行されるということでした。ただし、フレームが 1/30 秒かかった場合、15 fps で実行されるため、これは少し精神的に思えました (更新と同じくらい多くの時間をスリープに費やすため)。

そこで、掘り下げて、gameLoop 関数への呼び出しをリフレッシュ レート (またはその一部) に同期する CADisplayLink クラスを見つけました。私はそれの多くのサンプルを見つけることができないので、コードレビューのためにここに投稿しています :-) 期待どおりに動作しているようで、経過 (フレーム) 時間を Update メソッドに渡すことが含まれているため、ロジックをフレームレートにすることができます-独立しています(ただし、フレームの実行に許容時間を超えた場合にCADisplayLinkが何をするかをドキュメントで実際に見つけることはできません-追いつくために最善を尽くし、クラッシュしないことを願っています!)。

フィードバックをいただければ幸いです:-)

PS。すべての本で「viewController.view」が使用されているのに、他のすべてでは「[オブジェクト名]」形式が使用されているように見える理由を教えていただければ、ボーナス ポイントです。[viewControllerビュー]ではないのはなぜですか?

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

iphone - あいまいな描画を回避するスケーリングでユーザー Quartz2D 座標系を設定する方法は?

このトピックは 1 回か 2 回スクラッチされていますが、私はまだ困惑しています。また、Google も友好的ではありませんでした。

Quartz はアフィン変換を使用して任意の座標系を使用できるため、実際の座標 (足など) を使用して間取り図などを描画できるようにしたいと考えています。

基本的に、例として、10x10 の長方形 (たとえば 10 インチのボックスを考えてください) を描画すると、60x60 ピクセルの長方形が得られるように、ビューをスケーリングします。

私が得る四角形がかなりあいまいであることを除いて、それは機能します。ここで別の質問をすると、その理由を説明する回答が得られました。しかし、私はその理由を理解しているかどうか確信が持てず、さらにそれを修正する方法も知りません。これが私のコードです:

awakeFromNibカスタム ビュー メソッドで座標系を設定します。

そして、これが私のドロールーチンです:

私が得た正方形はうまくスケーリングされていますが、完全にぼやけています。で遊んでlineWidthも役に立ちません。 をlineWidth小さく設定すると、軽くなりますが、鮮明にはなりません。

ドメイン座標を使用できるように、スケーリングされた座標系を持つようにビューを設定する方法はありますか? それとも、元に戻って描画ルーチンにスケーリングを実装する必要がありますか?

この問題は、平行移動または回転では発生しないことに注意してください。

ありがとう

0 投票する
4 に答える
14756 参照

iphone - CGContext を使用して線上に三角形/矢印を描画する

場所を操作するために、route-me のフレームワークを使用しています。このコードでは、2 つのマーカー (ポイント) 間のパスが線として描画されます。

私の質問: 「行の中央 (または上部) に矢印を追加して方向を示すには、どのコードを追加すればよいですか?」

ありがとう

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

iphone - Quartz2Dでアニメート可能な定規を描く方法は?

練習のために、Quartz2Dを使用して単純な定規の線を描きたいと思います。

iPhoneでプログラムでベクターグラフィックスを実行することについて私は知らないので、誰かが私に始めるための良いチュートリアルを教えてくれるかもしれませんか?

0 投票する
4 に答える
12907 参照

iphone - PDFファイルから目次を作成する

私はクォーツを使用してpdfコンテンツを表示しています.pdfをナビゲートするために目次を作成する必要があります。Apple のドキュメントを読むと、CGPDFDocumentGetCatalog を使用することになっていると思いますが、これを使用する方法の例はどこにも見つかりません。何か案は?

更新:これに対する解決策はまだ見つかっていません。私はアレックスのソリューションに飽きましたが、得られる出力は次のようになります。

それを使用可能な目次に変える方法はまだわかりません。NSDictionary理想的には、タイトルと一致するページ番号を持つオブジェクトの配列を取得したいと考えています。

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

iphone - Quartz2D は、描画する前に rect の交差を線でテストしますか?

たくさんの線で構成された大きなスキームを描いています。のdrawRect:方法で行いUIViewます。スキームはビューのレイヤーよりも大きく、各線をチェックして、表示されている四角形と交差する場合にのみ描画します。でも、これをやるべきか?と一瞬思った。もしかしたら、Quartz はすでにこのテストを行っているのでしょうか?

質問は次のとおりです。関数を使用すると、この線がレイヤーの四角形と交差するかどうかCGContextAddLineToPoint()Core Graphicsテストされますか、それとも単に描画されますか?

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

iphone - クォーツ2dでドロップシャドウとグラデーションを描く方法は?

コアグラフィックを使用したカスタムシェイプ描画があり、ドロップシャドウとグラデーションも追加したいと思います。私はこれを組み合わせる方法とそれを行う方法について多くの情報を探し求めてきましたが、それを機能させることができません。どちらか1つしか描けません。すでにこれを行っている人、またはこれを行う方法を知っている人はいますか?ありがとうございました。