描画色がcolorのアンチエリアスしたスパイラル
-
25-09-2019 - |
質問
していた この例では、phpを利用したGD を区分-描画するスパイラル小円弧.何をしたいと思っていは描画のた近似スパイラルと数学的に正確などが可能です。
Inkscapeは スパイラツール に見える良いものをしたいと思っているスパイラル発生プログラム(好ましくはPython).
いつ図面ライブラリ(例えばカイロ)にネイティブの支援スパイラル形状のシステムになっていを描画するのに完璧な色がcolorのアンチエリアスしたスパイラルは、最良の方法のことで繰り返し処理を実行しピクセルのピクセル以上キャンバスかどうかの判断は各ピクセル内にある数学的に定義されたスパイラルアーム地域有限厚さ)?この場合、も実施アンチエイリアスロジックをゼロから立ち上げました。いまの部分の曲線内にある各ピクセルボックスに変換して、同比率が満たされた空域をアルファ値?
このインスタンスの質のレンダリングよりも大事なのは、あなたレンダリング。しかし、評価する形で各ピクセルに襲いかに非効率的です。
更新: この問いにすべきかが この (ヤフー答えに失敗しました).
解決
でしょうが、(?スプライン)曲線を描くだけの制御点の多くを生成することが容易ではありませんか?そのような既存のアンチエイリアシングエンジンを拾うと思います。
[EDIT]:これまで第一次近似(のTcl / Tkので行われますが、コードが簡単に変換することでなければなりません)私はこれを与えます:
# Make the list of spiral coordinates
set coords {}
set theta 0; set r 10
set centerX 200; set centerY 150
# Go out 50 pixels per revolution
set pitch [expr {100.0 / 720.0}]
for {set i 0} {$i<720} {incr i} {
lappend coords [expr { $centerX + $r*sin($theta) }] \
[expr { $centerY + $r*cos($theta) }]
set r [expr { $r + $pitch }]
# Increment angle by one degree
set theta [expr { $theta + 3.1415927/180 }]
}
# Display as a spline
pack [canvas .c -width 400 -height 300]
.c create line $coords -tag spiral -smooth 1
私は制御点の私の使用して効率的にどんな努力をしていませんでした。
他のヒント
私はネイティブサポート螺旋形状
こと任意描画ライブラリ(例えばカイロ)を発見していません
いいえ、それはかなり珍しい機能です。それはごく最近のスパイラルで描画する人気となっていることだけです。
このためのコードのInkscapeの用途はスピロにあります。それは主にPythonの、とスパイラルがに近似していることをベジエをレンダリングするためにカイロを使用することができます。
しかし、各画素の積分を評価することは、かなり非効率的なとして私を打つます。
はい、確かに。