| 
									
										
										
										
											2015-01-15 14:19:21 +08:00
										 |  |  | function plotCylinderSamples(cylinders, options, figID)
 | 
					
						
							| 
									
										
										
										
											2015-01-12 12:20:37 +08:00
										 |  |  | % plot the cylinders on the given field | 
					
						
							|  |  |  | % @author: Zhaoyang Lv | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     figure(figID); | 
					
						
							| 
									
										
										
										
											2015-01-09 23:33:53 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     holdstate = ishold; | 
					
						
							|  |  |  |     hold on | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |     num = size(cylinders, 1); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     sampleDensity = 120; | 
					
						
							| 
									
										
										
										
											2015-01-12 12:20:37 +08:00
										 |  |  |      | 
					
						
							|  |  |  |     for i = 1:num                 | 
					
						
							| 
									
										
										
										
											2015-01-09 23:33:53 +08:00
										 |  |  |         [X,Y,Z] = cylinder(cylinders{i}.radius, sampleDensity * cylinders{i}.radius * cylinders{i}.height); | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         X = X + cylinders{i}.centroid.x; | 
					
						
							|  |  |  |         Y = Y + cylinders{i}.centroid.y; | 
					
						
							|  |  |  |         Z = Z * cylinders{i}.height; | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         cylinderHandle = surf(X,Y,Z); | 
					
						
							|  |  |  |         set(cylinderHandle, 'FaceAlpha', 0.5); | 
					
						
							|  |  |  |         hold on | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |     axis equal | 
					
						
							| 
									
										
										
										
											2015-01-15 14:19:21 +08:00
										 |  |  |     axis([0, options.fieldSize.x, 0, options.fieldSize.y, 0, 20]); | 
					
						
							| 
									
										
										
										
											2015-01-09 23:33:53 +08:00
										 |  |  |          | 
					
						
							| 
									
										
										
										
											2015-01-12 12:20:37 +08:00
										 |  |  |     grid on | 
					
						
							|  |  |  |      | 
					
						
							| 
									
										
										
										
											2015-01-09 23:33:53 +08:00
										 |  |  |     if ~holdstate | 
					
						
							|  |  |  |         hold off | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  | end |