Indexへ
(10962)//【10959】→(10975)
------------------------
【タイトル】矢印の塗り潰しについて
【記事番号】 10959 (*)
【 日時 】06/04/18 17:38
【 発言者 】art modanart@hotmail.com

お世話になります。
矢印の塗り潰しについての質問です。
Snap_Kinさんの”矢印の塗潰し version 1”という外部変形を使用させて頂いております。(Snap_Kinさんお世話になっております)ところが、大きな矢印(長さが5mm以上)を塗りつぶす事になりました。ある範囲の矢印(5mm以上の大きな矢印)を一括で塗りつぶすような外部変形は無いでしょうか。よろしくお願い致します。


Indexへ
(10959)←【10975】→(10984)
------------------------
【タイトル】Re(1):矢印の塗り潰しについて
【記事番号】 10975 (10959)
【 日時 】06/04/18 22:37
【 発言者 】コジマ

▼artさん:
ある範囲の矢印(5mm以上の大きな矢印)を一括で塗りつぶすような外部変形は無いでしょうか。よろしくお願い致します。

以下で可能ですが、中間の線が指定長さより短いと、意図しない塗潰しになるかも?

◎バッチファイル(ファイル名 矢印塗潰.bat)

@REM 矢印の塗り潰し
@echo off
REM #jww
REM #cd
REM #h1
REM #c矢印の長さの最大値(図寸)無指定:3/_/a
REM #bz
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -Ks 矢印塗潰.rb temp.txt %1 > jwc_temp.txt


◎スクリプトファイル(ファイル名 矢印塗潰.rb)

ya_l=3
sen=[]
include Math
while ARGV.size>1
    case argument=ARGV.pop
        when /\/a/
            ya_l=argument[2..-1].to_f
    end
end
def ika3(x)
    a=(((x.to_f)*1000).round/1000.to_f)
    return a
end
while ARGF.gets
    xy=split
    if xy[0]=~/^ly/
        ly=xy[0]
    end
    if xy[0]=~/^lc/
        lc=xy[0]
    end
    if xy[0]=~/^\d|^-/
        xy.collect!{|item|item.to_f}
        l=sqrt((xy[2]-xy[0])**2+(xy[3]-xy[1])**2)
        if ika3(l)<=ya_l
            sen<<[xy[0],xy[1],xy[2],xy[3],ly,lc]
        end
    end
end
puts "bz"
while a=sen.shift
    b=sen.find{|item|a[0]==item[0] && a[1]==item[1] or a[2]==item[0] && a[3]==item[1] or a[2]==item[2] && a[3]==item[3] or a[0]==item[2] && a[1]==item[3]}

    if b
        puts(a[4],a[5])
        if a[0]==b[0] && a[1]==b[1]
            printf("sl %.11f %.11f %.11f %.11f %.11f %.11f\n",
a[2],a[3],a[0],a[1],b[2],b[3])
        elsif a[2]==b[0] && a[3]==b[1]
            printf("sl %.11f %.11f %.11f %.11f %.11f %.11f\n",
a[0],a[1],a[2],a[3],b[2],b[3])
        elsif a[2]==b[2] && a[3]==b[3]
            printf("sl %.11f %.11f %.11f %.11f %.11f %.11f\n",
a[0],a[1],a[2],a[3],b[0],b[1])
        elsif a[0]==b[2] && a[1]==b[3]
            printf("sl %.11f %.11f %.11f %.11f %.11f %.11f\n",
a[2],a[3],a[0],a[1],b[0],b[1])
        end
        sen.delete_if{|item|item==b}
    end
end


Indexへ
(10975)←【10984】//(10965)
------------------------
【タイトル】Re(2):矢印の塗り潰しについて
【記事番号】 10984 (10975)
【 日時 】06/04/19 08:40
【 発言者 】art modanart@hotmail.com

▼コジマさん:
お世話になります。
いつも素早い対応で恐縮致しております。
思った通りの塗り潰しが出来るようになりました。
ありがとうございました。