2013年12月8日日曜日

ベクトル図形のANDをとってみる件。

●図形を演算する話。
ベクタ画像を合成(演算)する件。のつづきです。
簡単に実装してみますです。
こぅいぅときゎ、まず、どう使いたいかをcodingしてみます。
とりあえず、こうしました。
  1. aPolies A;  
  2. //1つめ  
  3. A.setLine(20,10,10,40);  
  4. A.setLine(10,40,40,50);  
  5. A.setLine(40,50,50,30);  
  6. A.setLine(50,30,20,10);  
  7. //2つめ  
  8. A.setLine(40,10,30,40);  
  9. A.setLine(30,40,60,40);  
  10. A.setLine(60,40,60,20);  
  11. A.setLine(60,20,40,10);  
  12. A.execute();  
  13. A.test();  
で、test()の結果が以下です。
  1. # moveTo [5] 36.36 20.91  
  2. # lineTo [5] 30.00 40.00  
  3. # lineTo [0] 45.00 40.00  
  4. # lineTo [3] 50.00 30.00  
  5. # lineTo [4] 36.36 20.91  
それぞれのデータをグラフにすると、以下です。



実際には、7つのステップを踏んで、この座標を割り出しています。 それが、以下ですね。
  1. # 0 : 20.0000 - 10.0000  
  2. # 1 : 40.0000 - 10.0000  
  3. # 2 : 60.0000 - 20.0000  
  4. # 3 : 36.3636 - 20.9091  
  5. # 4 : 50.0000 - 30.0000  
  6. # 5 : 10.0000 - 40.0000  
  7. # 6 : 30.0000 - 40.0000  
  8. # 7 : 60.0000 - 40.0000  
  9. # 8 : 45.0000 - 40.0000  
  10. # 9 : 40.0000 - 50.0000  
  11. ------------------------  
  12. # 0 : 10.0000  
  13. # 1 : 20.0000  
  14. # 2 : 20.9091  
  15. # 3 : 30.0000  
  16. # 4 : 40.0000  
  17. # 5 : 50.0000  
  18. ------------------------  
  19. # 0  tag:1  bup:1  bHorizon:0  x1:20.0 y1:10.0 x2:10.0 y2:40.0 x:15.0 y:25.0  
  20. # 1  tag:2  bup:1  bHorizon:0  x1:10.0 y1:40.0 x2:40.0 y2:50.0 x:25.0 y:45.0  
  21. # 2  tag:3  bup:0  bHorizon:0  x1:40.0 y1:50.0 x2:50.0 y2:30.0 x:45.0 y:40.0  
  22. # 3  tag:4  bup:0  bHorizon:0  x1:50.0 y1:30.0 x2:20.0 y2:10.0 x:35.0 y:20.0  
  23. # 4  tag:5  bup:1  bHorizon:0  x1:40.0 y1:10.0 x2:30.0 y2:40.0 x:35.0 y:25.0  
  24. # 5  tag:6  bup:1  bHorizon:1  x1:30.0 y1:40.0 x2:60.0 y2:40.0 x:45.0 y:40.0  
  25. # 6  tag:7  bup:0  bHorizon:0  x1:60.0 y1:40.0 x2:60.0 y2:20.0 x:60.0 y:30.0  
  26. # 7  tag:8  bup:0  bHorizon:0  x1:60.0 y1:20.0 x2:40.0 y2:10.0 x:50.0 y:15.0  
  27. ------------------------  
  28. # 0  tag:1  bup:1  bHz:0 hnum:1 x1:20.0 y1:10.0 x2:16.7 y2:20.0 x:18.3 y:15.0  
  29. # 1  tag:4  bup:0  bHz:0 hnum:1 x1:35.0 y1:20.0 x2:20.0 y2:10.0 x:27.5 y:15.0  
  30. # 2  tag:5  bup:1  bHz:0 hnum:1 x1:40.0 y1:10.0 x2:36.7 y2:20.0 x:38.3 y:15.0  
  31. # 3  tag:8  bup:0  bHz:0 hnum:1 x1:60.0 y1:20.0 x2:40.0 y2:10.0 x:50.0 y:15.0  
  32. # 4  tag:1  bup:1  bHz:0 hnum:2 x1:16.7 y1:20.0 x2:16.4 y2:20.9 x:16.5 y:20.5  
  33. # 5  tag:4  bup:0  bHz:0 hnum:2 x1:36.4 y1:20.9 x2:35.0 y2:20.0 x:35.7 y:20.5  
  34. # 6  tag:5  bup:1  bHz:0 hnum:2 x1:36.7 y1:20.0 x2:36.4 y2:20.9 x:36.5 y:20.5  
  35. # 7  tag:7  bup:0  bHz:0 hnum:2 x1:60.0 y1:20.9 x2:60.0 y2:20.0 x:60.0 y:20.5  
  36. # 8  tag:1  bup:1  bHz:0 hnum:3 x1:16.4 y1:20.9 x2:13.3 y2:30.0 x:14.8 y:25.5  
  37. # 9  tag:5  bup:1  bHz:0 hnum:3 x1:36.4 y1:20.9 x2:33.3 y2:30.0 x:34.8 y:25.5  
  38. # 10  tag:4  bup:0  bHz:0 hnum:3 x1:50.0 y1:30.0 x2:36.4 y2:20.9 x:43.2 y:25.5  
  39. # 11  tag:7  bup:0  bHz:0 hnum:3 x1:60.0 y1:30.0 x2:60.0 y2:20.9 x:60.0 y:25.5  
  40. # 12  tag:1  bup:1  bHz:0 hnum:4 x1:13.3 y1:30.0 x2:10.0 y2:40.0 x:11.7 y:35.0  
  41. # 13  tag:5  bup:1  bHz:0 hnum:4 x1:33.3 y1:30.0 x2:30.0 y2:40.0 x:31.7 y:35.0  
  42. # 14  tag:3  bup:0  bHz:0 hnum:4 x1:45.0 y1:40.0 x2:50.0 y2:30.0 x:47.5 y:35.0  
  43. # 15  tag:7  bup:0  bHz:0 hnum:4 x1:60.0 y1:40.0 x2:60.0 y2:30.0 x:60.0 y:35.0  
  44. # 16  tag:2  bup:1  bHz:0 hnum:5 x1:10.0 y1:40.0 x2:40.0 y2:50.0 x:25.0 y:45.0  
  45. # 17  tag:3  bup:0  bHz:0 hnum:5 x1:40.0 y1:50.0 x2:45.0 y2:40.0 x:42.5 y:45.0  
  46. ------------------------  
  47. # 0  tag:5  bup:1  bHz:0 hnum:3 x1:36.4 y1:20.9 x2:33.3 y2:30.0 check:1  
  48. # 1  tag:4  bup:0  bHz:0 hnum:3 x1:50.0 y1:30.0 x2:36.4 y2:20.9 check:1  
  49. # 2  tag:0  bup:0  bHz:1 hnum:3 x1:33.3 y1:30.0 x2:50.0 y2:30.0 check:0  
  50. # 3  tag:5  bup:1  bHz:0 hnum:4 x1:33.3 y1:30.0 x2:30.0 y2:40.0 check:1  
  51. # 4  tag:3  bup:0  bHz:0 hnum:4 x1:45.0 y1:40.0 x2:50.0 y2:30.0 check:1  
  52. # 5  tag:0  bup:0  bHz:1 hnum:4 x1:30.0 y1:40.0 x2:45.0 y2:40.0 check:1  
  53. # 6  tag:0  bup:0  bHz:1 hnum:3 x1:50.0 y1:30.0 x2:33.3 y2:30.0 check:0  
  54. ------------------------  
  55. # 0  tag:5  bup:1  bHz:0 hnum:3 x1:36.4 y1:20.9 x2:33.3 y2:30.0 check:1  
  56. # 1  tag:5  bup:1  bHz:0 hnum:4 x1:33.3 y1:30.0 x2:30.0 y2:40.0 check:1  
  57. # 2  tag:0  bup:0  bHz:1 hnum:4 x1:30.0 y1:40.0 x2:45.0 y2:40.0 check:1  
  58. # 3  tag:3  bup:0  bHz:0 hnum:4 x1:45.0 y1:40.0 x2:50.0 y2:30.0 check:1  
  59. # 4  tag:4  bup:0  bHz:0 hnum:3 x1:50.0 y1:30.0 x2:36.4 y2:20.9 check:1  
  60. ------------------------  
  61. # moveTo [5] 36.36 20.91  
  62. # lineTo [5] 30.00 40.00  
  63. # lineTo [0] 45.00 40.00  
  64. # lineTo [3] 50.00 30.00  
  65. # lineTo [4] 36.36 20.91  
つづく。

0 件のコメント:

コメントを投稿