検索 - みる会図書館

全データから 211514件ヒットしました。

THE BUSINESS BOOK


FIRST OR EDGE

月刊 C MAGAZINE 1993年6月号


・ ト ー - ① 碧 ma 羆 ① ー y ① 羆 ① ー 羆 A ー ① it m ポ リ ゴ ン の 輪 郭 を 作 る は , こ の 境 界 の 配 列 を 使 う 関 数 は , 現 在 の 線 の 端 の イ ン デ ク ス を , 次 の ロ ジ ッ ク に よ り 求 め ま す 。 if( indx > num edges ) next else indx 十 1 ; next ひ と つ の ラ イ プ ラ リ の 中 に , な ん ら か の 属 性 を セ ッ ト ( 設 定 ) す る 関 数 が あ っ た ら , 必 ず そ の 属 性 の 現 在 値 を 知 る た め の 関 数 も な け れ ば な り ま せ ん 。 と い う わ け て 、 , lnq_ Clipping Border が 現 在 の ク リ ッ ヒ 。 ン グ 境 界 を 返 し ま す 。 Clip Polygon は , こ の 関 数 ラ イ プ ラ リ の 全 体 が ま さ に こ れ の た め に あ る , と い う 主 役 的 な 関 数 て 、 す が , ラ イ プ ラ リ の 中 て い ち ば ん 短 い 関 数 て 、 も あ り ま す 。 CIip PoIygon は , current edge を ク リ ッ ピ ン グ 境 界 の 最 初 の 辺 に セ ッ ト し , 境 界 の 各 辺 の FIRST フ ラ グ を リ セ ッ ト し ま す 。 こ の current index と い う イ ン デ ク ス が , Clip Vertex に , ど の 辺 に 対 し て ク リ ッ ビ ン グ す る の か を 教 え ま す 。 次 に , CIip PoIygon は , ク リ ッ ヒ 。 ン グ す る ポ リ ゴ ン の 各 点 を 関 数 Clip Vertex に 渡 し ま す 。 そ し て 次 に , ポ リ ゴ ン を 閉 じ ま す 。 List 1 ( ア ル ゴ リ ズ ム 1 ) を , も う 一 度 見 て く だ さ い 。 Clip Polygon は , ア ル ゴ リ ズ ム の 部 を ポ リ ゴ ン の 各 点 に 対 し て 繰 り 返 し 繰 り 返 し 呼 び 出 し て い る だ け て 、 す ね 。 そ し て 最 後 に , ア ル ゴ リ ズ ム の 第 二 の 部 分 を 呼 び 出 し て ポ リ ゴ ン の 最 後 の 辺 を 閉 じ て い ま す 。 て 、 す か ら , こ の 関 数 は , ポ リ ゴ ン だ け て 、 な い ろ い ろ な 線 を ク リ ッ ヒ 。 ン グ す る の に 使 え ま す ね 。 る ぐ る め ぐ り List 3 に 示 す CIip Vertex は , CIip PoIyg 。 n 関 数 の 実 際 の 仕 事 を す べ て 担 当 す る 関 数 て 、 す 。 こ の Clip Vertex は , ア ル ゴ リ ズ ム 1 の 最 初 の 部 分 を 実 装 し て い ま す 。 こ の 関 数 List 1 : ー void Output-P0int( POINT point ) if( current-edge > num_edges ) 3 : Output( P0int ) : 4 : else{ 5 : lncrement( current-edge ) : 6 : Clip-Vertex( point ) : 7 : Decrement( current-edge ) : 8 : 9 : 10 : } / / 0utput-P0int 12 : void Clip-Vertex( POINT point ) / / 交 点 POINT intercept; / / 線 に 対 す る 位 置 ( 1 or 0 or -1 ) 15 : LOCATION side; 16 : INDEX end_edge; end_edge ニ current-edge 十 1 : side ニ Where-Is( point, border[ current-edge ] , 20 : border[ end-edge ] ) ; if( FIRST[ current_edge ] ) { 22 : first-pointC current_edge ] 23 : FIRSTC current-edge ] ニ FALSE; 24 : }else{ 25 : if( ( side * prev-side[ current-edge ] ) く 0 ) { 26 : lntercept( point, 27 : intercept prev_point 〔 current_edge ] , 28 : borderC current-edge ] , 29 : borderC end-edge ] ) : 30 : 0utput-Point( intercept ) ; 31 : 32 : 33 : border_side[ current_edge ] ) i f ( ( s i de ー 34 : Ⅱ ( s i de = ON_L I NE ) ) 35 : Output-Point( point ) ; 36 : prev-point[ current_edge ] 37 : prev_side [ current_edge ] 38 : 39 : } / / Clip_Vertex 40 : 4 1 : vo i d ロ ose-POI yg on ( vo i d ) POINT intercept ; 43 : LOCATION side; 44 : INDEX end-edge, indx; 45 : 46 : indx く = num_edges; ー 十 十 indx ) { for( indx 47 : i f ( ! 日 RST [ i nd x ] ) { 48 : i ndx + 1 : end-edge 49 : ー Where_Is( first-point[ indx ] , S i d e border[ indx ] , borderC end-edge ] ) : 52 : i f ( ( s i de * prev -s i de [ i ndx ] ) く 0 ) { 53 : lntercept( first_point[ indx ] , 54 : i ntercept prev-point[ indx ] , 55 . border[ indx ] , 56 : border[ end-edge ] ) ; Clip-Vertex( intercept ) : 58 : 59 : 60 : 62 : } / / Close_Polygon 63 : 64 . void CIip-POIygon( POINT point[], 66 : INDEX indx; 68 : current-edge for( indx 69 : FIRST[ indx ] = TRUE; PO i n t : po i n t : S i de , INDEX num_points ) indX く ニ num_edges; 十 十 indX ) 28 C MAGAZINE 1993 6

EDGE 3~毒の夏~


毒 の 夏 5

月刊 C MAGAZINE 1993年6月号


ー プ ~ 新 ー Carl W. Reyno 旧 s / 岩 谷 宏 訳 L △ 91J E (COMPUTER LANGUAGE, Feb. 1993 ) … ド を 勢 リ 。 ロ の を •COMPUTER ボ リ ゴ ン ク リ ッ ピ ン グ の た め の SutherIand-Hodgman ア ル ゴ リ ズ ム 實 ① 、 題 ① r ー 題 羆 - 羆 ① m 羆 ① ー y ① ① 壟 ー 羆 A ー ① r 血 m ド AS ー 0 ア ル ゴ リ ズ ム を 詳 し く 解 説 し ま す か ら , こ れ で ど ん な ボ リ ゴ ン ク リ ッ ピ ン グ で も 平 気 二 人 は , K. WieIer と P. Atherton が TC も 紹 介 し て い ま す 。 omputer Graphics 』 と い う 本 の 中 て 、 発 表 し ポ リ ゴ ン の ク リ ッ ヒ 。 ン グ 手 法 に 関 す る 文 た , ク リ ッ ヒ 。 ン グ し た 結 果 の ポ リ ゴ ン に 幅 献 は , も っ と い ろ い ろ あ る は ず て 、 す が , 私 ゼ ロ の 区 画 が な い よ う に す る ア ル ゴ リ ズ ム ポ リ ゴ ン ( 多 角 形 ) を 一 定 の 境 界 線 て 、 断 ち か ら ご 紹 介 て 、 き る の は 以 上 て 、 す 。 切 る ( ク リ ッ ヒ 。 ン グ す る ) SutherIand-Hodg ア ル ゴ リ ズ ム 1 man の ア ル ゴ リ ズ ム は , も う 何 年 間 も , ポ リ ゴ ン ク リ ッ ピ ン グ の た め の 最 良 の ア ル ゴ リ ズ ム だ と 見 な さ れ て い ま す 。 こ の ア ル ゴ リ ズ ム は 最 初 1974 年 に , lvan SutherIand と Gary Hodgman が 発 表 し ま し た [ 1 ] 。 そ の 後 こ の ア ル ゴ リ ズ ム は , WiIIiam N ewman と Robert Sproull の 本 fPrinciples of lnteractive Computer Graphics 』 の 中 て 、 紹 介 さ れ 〔 2 〕 , ま た , Steve Harrington は , こ の ア ル ゴ リ ズ ム の 再 帰 を 使 わ な い 実 装 を , 彼 の 著 書 『 Computer Graphics : A Programming ApproachJ の 中 て 、 発 表 し ま Fundamentals Of lnteractive Compute r GraphicsJ と い う 本 の 中 て 、 James F01ey と Andries van Dam は , Sutherland-Hod gman ア ル ゴ リ ズ ム を ほ ば 下 敷 き と す る ポ リ ゴ ン ク リ ッ ピ ン グ 関 数 の 実 装 を 紹 介 し ま し た 。 こ の 二 人 の 実 装 に は , SutherIand-Ho dgman ア ル ゴ リ ズ ム の 最 後 の ス テ ッ プ が な い た め , 正 し く ク リ ッ ピ ン グ て 、 き な い ポ リ ゴ ン も 一 部 に は あ り ま す 。 ま じ め に LiSt 注 : p 1 - → p2 と い う 記 法 は , pl か ら p2 へ 引 い た 線 を 意 味 す る Clip-P01ygon: fo r ポ リ ゴ ン の 各 po i n t ( 点 ) に 対 し て if( FIRST[ edge ] ) first-pointC edge ] PO i n t : FIRST[ edge ] ニ FALSE; e ー se if( 線 が border[ edge ] ( 境 界 の 辺 ) と 交 差 し て い る ) previous[ edge ] - ->point と border[ edge ] と の 交 点 を 求 め る 交 点 を 次 の ed ge ( 辺 ) に 対 し て チ ェ ッ ク す る if(point が 可 視 ) point を 次 の edge ( 辺 ) に 対 し て チ ェ ッ ク す る previous[ edge ] 注 : po i n t は , 境 界 の す べ て の 辺 に 対 し て チ ェ ッ ク し 終 え て か ら 出 力 さ れ る Close-POIygon for ( 境 界 (border) の 各 辺 (edge) に 関 し て ) i f ( 何 ら か の 出 力 が あ れ ば ) if( previous[ edge ]-->first-point[ edge ] と border[ edge ] が 交 差 し て い る ) そ の 交 点 を 求 め る 交 点 を 境 界 の 辺 に 対 し て チ ェ ッ ク す る for( 境 界 (border) の 各 辺 (edge) に 関 し て ) FIRST[ edge ] po i n t : : TRUE; ポ リ ゴ ン ク リ ッ ヒ 。 ン グ の た め の Sutherland-Hodgman ア ル ゴ リ ズ ム 25

Technical Tennis


Chapter Three Path 0 「 ball before impact Path of ball after i mpact Line perpendicular t0 string plane Racquet head (edge on) Racquet path before impact SERVE viewed from above. Ballis almost at rest when struck by racquet. (a) (b) (d) FOREHAND, BACKHAND orVOLLEY viewed from side or from above (h) Racquet at rest 1 16 line and where the ba 〃 approaches 砒 an angle). cases such as (c) and (g) where the racquet path is along the perpendicular the racquet path and 0 line perpendicular t0 the racquet face (but notin Figure 3 」 9 The outgoing path ofthe ba 〃 is approximately ha / 「 wa / between

Surreptitious software obfuscation watermarking and tamperproofing for software protection


9.1 AIgorithm WMCT ・ Exploiting Aliasing 553 ー ー ・ ・ ・ - ー ー ー ・ P PCT g raph bytecode size - ー ー → ー ー ー reducible permutation graph bytecode size ー ー -- ・ + - ー ・ 一 permutation g 「 aph bytecode size - ー ー ・ を 一 一 一 radix g raph bytecode size 1 , 000 (seMq) ez!S 500 watermark Figure 9.1 Sizes of the graph-building Java bytecode as a function of the size of the finger- print. %is figure is taken from reference [9 田 . 9.13.2 Generating Minimal Code Once the graph codec from section 8.1() 第 男 ろ has constructed a watermark graph from your watermark integer, you have to gen_ erate code that builds this graph. You do a depth-first traversal of the graph starting at its root, and emit a 〃 走 = new() for every node in reverse topological order.When you ve generated code for nodes 〃 , and を / , you can generate code for any edge between them, such as 〃 ,. edge 1 = の . Unlike graphs that you find ⅲ most math textbooks, the graphs we talk about in this chapter are 市 尾 は 4 〃 な 尸 叩 ん (you can have more than one edge ℃ en t 从 nodes) with an ordering on a node's out_ edgel edge2 going edges. ln other words, you can have both edges 〃 - ・ ・ 一 -- -- - ー → and 〃 ー ー ー ー → , and there's a definite difference between them. Depending on the graph family and your target language, you might be able t0 do better than such a straightforward code generation. If the same subgraph occurs many times in the graph, it might make sense to factor out that code into a subroutine. Some approaches to code compaction [ 112 ] have used similar ideas. TO see that code generatlon strategies matter, have a 100k at the light gray code segment below that builds the 48th tree in the parent-pointer tree encoding. To make sure that the graph is not garbage collected, we've had to add static pointers t0 every leaf:

Surreptitious software obfuscation watermarking and tamperproofing for software protection


Dynamic Waterm arking 558 Unfortunately, reflection is rarely used ⅲ real programs' so this type 0f tamperproof- ing is highly unstealthy. ProbIem 9.4 C doesn't have reflection capabilities' but can you think of a similar way t0 protect a graph in a weakly typed language? lnstead, what you really want is a graph familywhere edge flips don't matter. The oriented parent-pointer tree is such a familY' since they only have one outgoing edge ⅲ the first place! Unfortunately, they don't have any other good error-correcting properties, as any Other 1 lnor change tO the graph will make the recognizer return a completely different watermark and there's no way for you to even detect that an attack has occurred. A more interesting graph family is 戸 な 〃 ノ 戸 / 4 〃 み な ″ (Section 8.10.4 男 6 ) graphs, which are resilient t0 edge flips and some other small perturbations. The reducible permutation graphs that we presented ⅲ Section 8.10. う 6 can' of course, be used to build dynam1C graphs as well as the CFG watermarks they were used for ⅲ the WMVVS algorithm. They maintain the same strong properties' including resistance t0 edge flips. 9.1.4.2 Protecting Against Node splitting A particularly nasty attack is 〃 0 を - / g. The idea is very simple: The attacker replaces every dynam1C object you allocate with two, where the first one points tO the second. The attacker will have to add extra code everywhere ⅲ the code where the split ObJect is referenced to ensure that the transformatlon IS semantics-preserving. ln a typed this transformation easy and reqtllres eXpenSlVe analysis. an attack: class Bogus {public Bogus L;} class NOde extends Bogus { public N0de R;} れ e Node() ; Node 取 IA new Bogus() ; Bogus れ lB n1B; れ IA . L , , e 町 Bogu 目 ( ) ; n2A 工 new N0de(); åNode 3A new Bogus(); }Bogus n3B n3B; ー れ 3 A . L n3A; n2A; n2A . R 1 B . L n3A; n3A; n3A . R n 2 B . L Ⅱ 2 A ; Ⅱ 3 B . L

月刊 C MAGAZINE 1993年6月号


に 一 彡 売 ま た , こ の ゲ ー ム は 八 角 形 て 、 あ る た め マ ス 目 の な い 角 の 付 近 は 使 用 し な い の て 、 , そ れ に あ た る 要 素 に は NP ()O PUT) て 表 し て い ま す 。 て す か ら , ccond [ 4 ] [ 4 ] に あ る 黒 か ら 上 方 向 を 探 る 場 合 は , ccond [ 3 ] [ 4 ] , ccond [ 2 ] [ 4 ] , ・ ・ と y 方 向 て あ る 行 を ひ と つ ず っ 減 ら し て い き ま す 。 ま た , 左 斜 め 下 の 方 向 て 、 は ccond [ 5 ] [ 3 ] , ccond ・ ・ と x 方 向 て あ る 列 を ひ と つ ず つ 減 ら し , y 方 向 て 、 あ る 行 を ひ と つ ず っ 増 や せ ば よ い の て す 。 ひ と つ の 位 置 か ら 探 る 方 向 は 縦 ( 上 / 下 ) , 横 ( 右 / 左 ) , 斜 め ( 右 上 / 右 下 / 左 上 / 左 下 ) の 計 8 方 向 な の て 、 , そ れ ぞ れ の 方 向 に つ い て ま と め る と , 上 方 向 ・ ・ ・ ・ ・ ・ 行 を 一 1 右 斜 め 上 ・ ・ ・ ・ ・ ・ 行 を 一 1 , 列 を 十 1 右 方 向 ・ ・ ・ ・ ・ ・ 列 を + 1 右 斜 め 下 ・ ・ ・ ・ ・ ・ 行 を 十 1 , 列 を 十 1 下 方 向 ・ ・ ・ ・ ・ ・ 行 を + 1 左 斜 め 下 ・ ・ ・ ・ ・ ・ 行 を 十 1 , 列 を 一 1 左 方 向 ・ ・ ・ ・ ・ ・ 列 を 一 1 左 斜 め 上 ・ ・ ・ ・ ・ ・ 行 を 一 1 , 列 を 一 1 と な り ま す 。 ま た , for( i 0 ; i く 10 ; i 十 十 ) Fig. 5 盤 の 分 類 と 名 称 マ ◆ ◆ ◆ 0 ◆ ◆ ◆ 0 ◆ ◆ ◆ 0 ◆ ◆ ◆ △ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ・ ◆ ◆ ◆ 0 ◆ ◆ ◆ 0 ◆ ◆ ◆ 0 ◆ ◆ ◆ 4 ・ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ′ ◆ ト ◆ ◆ な ′ ◆ ◆ ト ◆ ′ ◆ ト ◆ 》 ◆ な ′ ◆ , ◆ 》 ◆ な , ◆ ◆ ◆ ^ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ス 当 ◆ ス ′ ◆ ′ ◆ 圦 ◆ ◆ ◆ ◆ ◆ ◆ ◆ ・ ◆ ◆ ◆ ・ ◆ ◆ ◆ ◆ ・ ◆ ◆ ◆ △ ◆ ◆ ◆ ◆ ・ ◆ ◆ ◆ 4 ; 当 ◆ ス 当 ◆ ◆ ◆ ◆ ◆ ・ ◆ ◆ ◆ ・ ◆ △ ◆ ャ ◆ ◆ ◆ ◆ ◆ マ ◆ ◆ ◆ △ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ 、 ◆ 、 ◆ 40 、 ◆ 4 ◆ 4 ◆ 、 04 ◆ 、 ◆ 、 ◆ 404 ◆ 4 ◆ 4 ◆ 4 △ ・ ◆ ◆ ◆ 0 ◆ ◆ ◆ 0 ◆ ◆ ◆ 0 ◆ ◆ ◆ “ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ) ◆ ◆ ◆ 0 ◆ ◆ ◆ 0 ◆ ◆ ◆ 0 ◆ ・ ◆ △ ′ ◆ ◆ ト ◆ ト 0 , ◆ ◆ ト ◆ な ′ ◆ ト ◆ ト ◆ な ′ ◆ ト ◆ な edge 部 サ プ edge 部 内 部 Fig. 6 各 部 に お け る 検 索 方 向 ロ ミ ロ 、 % ロ ー ま ◎ ミ 第 ロ % ロ % ゞ 0 〇 edge 部 内 部 ・ サ プ edge 部 for ( j 0 ; j く 10 ; j 十 十 ) if (ccond [i] [j] = BK ー ー ccond [i] [j] の よ う に , 二 重 ル ー プ を 用 い れ ば す べ て の 位 置 の 情 報 を 得 る こ と が て 、 き ま す 。 検 索 の 方 法 検 索 て 、 は 盤 を edge 部 , サ プ edge 部 , 内 部 の 三 つ に 分 け て 考 え て い ま す ( Fig. 5 ) 。 サ プ edge 部 ・ 内 部 に お い て , ひ と つ の 駒 が 検 索 , 裏 返 し の て 、 き る 方 向 は 先 ほ ど 述 べ た よ う に 8 方 向 て 、 す が , edge 部 て は , そ の 位 置 に よ っ て 方 向 は 異 な り ま す が 常 に 内 側 に 3 方 向 , egde 部 の 円 周 を 右 回 り / 左 回 り の 計 5 方 向 と な り ま す (Fig. 6 ) 。 な お , こ こ て 、 い う 検 索 と は 相 手 を 何 枚 裏 返 す こ と が て 、 き る か , = WT ) Fig. 7 一 方 向 の 状 況 ノ ヾ タ ー ン の 種 類 ( ア ル フ ァ ベ ッ ト の 位 置 に 黒 を 置 い た 場 合 ) 600 ロ c 〇 〇 〇 0 D 〇 〇 〇 E 〇 〇 〇 0 〇 安 全 安 全 裏 返 せ る 危 険 危 険 158 C MAGAZINE 1993 6

Surreptitious software obfuscation watermarking and tamperproofing for software protection


Try Safari B00ks OnIine FREE Get online access t0 5 , 000 + B00ks and Videos REPAIRING PC UPGRADING 5C0 端 u を の 、 J00 「 T ・ 1 日 A R R ー E M 、 0 良 THE RAILS WAY も に ま 第 に 饐 NL EASHED CCENT/CCNA ー C201 れ こ E “ 0 物 材 :jønG ー ・ Safarl. B00 0 献 ine Ad 3 FREE TRIAL—GET STARTED TODAY! WWW. informit.com/safaritrial Find trusted answers, fast OnIySafa 「 i letsyou search ac 「 oss thousandsof best-selling b00ks f 「 om the t0P technologypublishe 「 s. including Addison-Wesley P 「 ofessional. Cisco P 「 0 ・ ReiIIy, Prentice Hall, Que. and Sams. Master the latest tO 5 and techniques 旧 addition tO gaining accessto an inc 「 edible invento 「 yoftechnical bOOks, safari ・ s extensive collection Of video tutorials lets you lea 「 n f 「 om the leading video training expe 「 tS. WAIT, THERE'S MORE! Keep your competitive edge With Rough cuts. getaccesstothe developing manuscriptand be among the first tO lea 「 n the newesttechnologies. Stay current with emerging technologies Sho 「 t Cutsand Quick Reference Sheets a 「 e shO 「 t. concise. focused content created to getyou up-to-speed quickly on newand cutting-edge technologies. 0 ー 500 P ′ 053

When Life is Linear From Computer Graphics to Bracketology


126 1 When Life is Linear 7 3 5 2 0 ・ 5 ( 15 ) 1 ( 10 ) 0.5 ( 1 ) 0 ・ 5 ( 5 ) Figu re 12.5. A fictional season of games played between four NCAA basketball teams. A directed edge points from the winning team tO the losing team. The weight Ofan edge ⅲ (a) indicates the day Ofthe seven-day season that the game was played. The same season is given in (b), but now the edges are labeled with the weight for each game and the difference between the winmng and losing scores is given ln parentheses. season in which a game was played. Let's take the length 0fthe season t0 be seven days and weight each game such that games in first half 0f the season are weighted by 1 / 2 and in the second half games count as a full game. The weighted Colley method results in the linear system 0 Solving, we find 4 C F D 図 0 3.5 ー 0.5 ー 0.5 4 0.3935 0.5419 0.5065 0.5581 C 1 .25 1 1 .25 which leads to the ranking (from best to worst) Charleston, Davidson, Fur- man, and Appalachian State. lncorporating recency alSO serves tO break the tie present ⅲ the uniformly weighted C011ey calculation. NOW, we turn to Massey for the same serles. Figure 12.5 (b) displays the weight for each game (derived om its day played) and the difference