• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Xác định trọng tâm đa giác bằng VB.NET

Nơi trao đổi về các vấn đề trong lập trình Windows Forms, Console dùng cú pháp ngôn ngữ Visual Basic .NET và C#

Điều hành viên: tungblt, vuathongtin

Hình đại diện của người dùng
Dragons
Thành viên trung thành
Thành viên trung thành
Bài viết: 270
Ngày tham gia: T.Tư 25/06/2008 10:58 am
Đến từ: Bến Tre, HCM
Has thanked: 14 time
Been thanked: 8 time

Xác định trọng tâm đa giác bằng VB.NET

Gửi bàigửi bởi Dragons » T.Tư 02/08/2017 4:21 pm

-Mình đang gặp vấn đề xác định trọng tâm một đa giác bất kỳ (khi biết toạ độ các đỉnh của đa giác) dùng VB.NET
-Đã tìm hiều nhiều mà không thấy thông tin (mình đã tìm rất kỹ), chỉ thấy code bằng Pascal (mình lại không biết Pascal, do mình không chuyên lập trình)
-Mình nghĩ các bạn trên diễn đàn này, có rất nhiều bạn biết Pascal nên mình post lên nhờ giúp.
Mình tìm được đoạn code như bên dưới về xác định trọng tâm của đa giác bất kỳ, nhờ các bạn chuyển giúp sang VB.NET
Hoặc nếu có cách khác xác định trọng tâm của đa giác hay hơn thì chỉ giúp mình nhé ! ;)
Cảm ơn. Đợi tin !
  1. {$A+,B-,D+,E+,F-,G-,I+,L+,N-,O-,P-,Q-,R-,S+,T-,V+,X+,Y+}
  2.  
  3. {$M 16384,0,655360}
  4.  
  5. Program Xac_dinh_trong_tam ;
  6.  
  7. Const
  8.  
  9. Maxn = 1000 ;
  10.  
  11. FileInp = 'TTAM.INP' ;
  12.  
  13. FileOut = 'TTAM.Out' ;
  14.  
  15. tp = 2 ; {So chu so thap phan can}
  16.  
  17. Type
  18.  
  19. Toado = Record
  20.  
  21. x, y : Real ;
  22.  
  23. End ;
  24.  
  25. Mang = Array [1.. Maxn] of Toado ;
  26.  
  27. Var
  28.  
  29. A : Mang ;
  30.  
  31. XG, YG : Real ;
  32.  
  33. tongx, tongy, tong : Real ;
  34.  
  35. N : Integer ;
  36.  
  37.  
  38. Procedure Docfile ;
  39.  
  40. Var
  41.  
  42. f : Text ;
  43.  
  44. i : Integer ;
  45.  
  46. Begin
  47.  
  48. Assign (f, FileInp) ;
  49.  
  50. {$I-}
  51.  
  52. Reset (f) ;
  53.  
  54. {$I+}
  55.  
  56. If IOResult <> 0 then Halt ;
  57.  
  58. Readln (f, N) ;
  59.  
  60. FillChar (A, Sizeof (A), 0) ;
  61.  
  62. For i := 1 to N do
  63.  
  64. Readln (f, A [i].x, A [i].y) ;
  65.  
  66. Close (f) ;
  67.  
  68. tongx := 0 ;
  69.  
  70. tongy := 0 ;
  71.  
  72. tong := 0 ;
  73.  
  74. End ;
  75.  
  76.  
  77. Function XAG (AA, BB, CC : Toado) : Real ;
  78.  
  79. Begin
  80.  
  81. XAG := (AA.x + BB.x + CC.x) / 3 ;
  82.  
  83. End ;
  84.  
  85.  
  86. Function YAG (AA, BB, CC : Toado) : Real ;
  87.  
  88. Begin
  89.  
  90. YAG := (AA.y + BB.y + CC.y) / 3 ;
  91.  
  92. End ;
  93.  
  94.  
  95. Function SA (AA, BB, CC : Toado) : Real ;
  96.  
  97. Var
  98.  
  99. tam : Real ;
  100.  
  101. Begin
  102.  
  103. tam := (AA.x - BB.x) * (AA.y + BB.y) +
  104.  
  105. (BB.x - CC.x) * (BB.y + CC.y) +
  106.  
  107. (CC.x - AA.x) * (CC.y + AA.y) ;
  108.  
  109. SA := Abs (tam) / 2 ;
  110.  
  111. End ;
  112.  
  113.  
  114. Procedure Xuly ;
  115.  
  116. Var
  117.  
  118. i : Integer ;
  119.  
  120. tamx, tamy, tamS : Real ;
  121.  
  122. Begin
  123.  
  124. For i := 2 to n - 1 do
  125.  
  126. Begin
  127.  
  128. tamx := XAG (A [1], A [i], A [i + 1]) ;
  129.  
  130. tamy := YAG (A [1], A [i], A [i + 1]) ;
  131.  
  132. tamS := SA (A [1], A [i], A [i + 1]) ;
  133.  
  134. tongx := tongx + tamx * tamS ;
  135.  
  136. tongy := tongy + tamy * tamS ;
  137.  
  138. tong := tong + tamS ;
  139.  
  140. End ;
  141.  
  142. XG := tongx / tong ;
  143.  
  144. YG := tongy / tong ;
  145.  
  146. End ;
  147.  
  148.  
  149. Procedure Ghifile ;
  150.  
  151. Var
  152.  
  153. f : Text ;
  154.  
  155. Begin
  156.  
  157. Assign (f, FileOut) ;
  158.  
  159. Rewrite (f) ;
  160.  
  161. Writeln (f, XG : 0 : tp, #32, YG : 0 : tp) ;
  162.  
  163. Close (f) ;
  164.  
  165. End ;
  166.  
  167.  
  168. Begin
  169.  
  170. Docfile ;
  171.  
  172. Xuly ;
  173.  
  174. Ghifile ;
  175.  
  176. End.
  177.  
  178.  
  179. File vào TTAM.INP
  180.  
  181. 4
  182.  
  183. 0 0
  184.  
  185. 4 0
  186.  
  187. 4 4
  188.  
  189. 0 4
  190.  
  191. File ra TTAM.OUT
  192.  
  193. 2.00 2.00


Sự thông cảm là chiếc chìa khoá vàng mở vào trái tim của người khác.

Quay về “Visual Basic .NET và C# (VB.NET & C#)”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.6 khách