Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.34 KB | None | 0 0
  1. /**
  2. * GRAFICACION 2019-A
  3. * EQUIPO: SALVANDO EL SEMESTRE
  4. * *ELIAS AYALA LARRAURI
  5. * *M.GABRIELA CARMONA CAMPOS
  6. */
  7. package graficacion3d;
  8.  
  9. import java.awt.BorderLayout;
  10. import java.awt.Color;
  11. import java.awt.Dimension;
  12. import java.awt.Font;
  13. import java.awt.GridLayout;
  14. import java.awt.Panel;
  15. import java.awt.Rectangle;
  16. import java.awt.event.ActionEvent;
  17. import java.awt.event.ActionListener;
  18. import javax.swing.BorderFactory;
  19. import javax.swing.ButtonGroup;
  20. import javax.swing.JLabel;
  21. import javax.swing.JPanel;
  22. import javax.swing.JRadioButton;
  23. import javax.swing.JScrollPane;
  24. import javax.swing.JSlider;
  25. import javax.swing.JTextArea;
  26. import javax.swing.SwingConstants;
  27. import javax.swing.border.TitledBorder;
  28. import javax.swing.event.ChangeEvent;
  29. import javax.swing.event.ChangeListener;
  30.  
  31. /**
  32. *
  33. * @author abraham diaz
  34. */
  35. public class Ventana extends Panel{
  36.  
  37.  
  38. public Graficacion3D walle;
  39. private JSlider sliderEscala = new JSlider(SwingConstants.HORIZONTAL, 1, 30, 15);
  40. private JSlider sliderX = new JSlider();
  41. private JSlider sliderY = new JSlider();
  42. private JSlider sliderZ = new JSlider();
  43.  
  44. private JLabel escala = new JLabel("Escala: ");
  45. private JLabel rotacionX = new JLabel("Rotación X: ");
  46. private JLabel rotacionY = new JLabel("Rotación Y: ");
  47. private JLabel rotacionZ = new JLabel("Rotacion Z: ");
  48. private JLabel cuerpoP = new JLabel("Cuerpo Principal: ");
  49. private JLabel labelManoIz = new JLabel("Mano Izquierda: ");
  50. private JLabel labelManoDr = new JLabel("Mano Derecha: ");
  51. private JLabel labelPieIz = new JLabel("Pierna Izquierda: ");
  52. private JLabel labelPieDr = new JLabel("Pierna Derecha: ");
  53.  
  54.  
  55. private JRadioButton radioWalle = new JRadioButton("Venom",true);
  56. //private JRadioButton radioCabeza = new JRadioButton("Cabeza");
  57. private JRadioButton radioCuerpo = new JRadioButton("Cuerpo");
  58. private JRadioButton radioBrazoIzquierdo = new JRadioButton("Brazo Izquierdo");
  59. private JRadioButton radioCodoIzquierdo = new JRadioButton("Codo Izquierdo");
  60. private JRadioButton radioManoIzquierda = new JRadioButton("Mano Izquierda");
  61. private JRadioButton radioBrazoDerecho = new JRadioButton("Brazo Dercho");
  62. private JRadioButton radioCodoDerecho = new JRadioButton("Codo Derecho");
  63. private JRadioButton radioManoDerecho = new JRadioButton("Mano Derecha");
  64. private JRadioButton radioCintura = new JRadioButton("Cintura");
  65. private JRadioButton radioPiernaIzquierda = new JRadioButton("Pierna Izquierda");
  66. private JRadioButton radioPieIzquierdo = new JRadioButton("Pie Izquierdo");
  67. private JRadioButton radioPiernaDerecha = new JRadioButton("Pierna Derecha");
  68. private JRadioButton radioPieDerecho = new JRadioButton("Pie Derecho");
  69. public static ButtonGroup radioButtons = new ButtonGroup();
  70. public JTextArea textArea = new JTextArea(5,25);
  71. private JPanel panelPrincipal;
  72. private Color colorFondoHerramientas = new Color(49,181,177);
  73. private Font myFont = new Font("Helvatica", Font.PLAIN, 14);
  74. private TitledBorder titledBorder = BorderFactory.createTitledBorder(null, "Herramientas", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, myFont, colorFondoHerramientas);
  75. public Ventana(Graficacion3D walle){
  76.  
  77. this.walle = walle;
  78. initComponentes();
  79. try {
  80. jbInit();
  81. } catch (Exception e) {
  82. e.printStackTrace();
  83. }
  84. }
  85.  
  86. private void jbInit(){
  87. this.setLayout(new GridLayout(30,1));
  88. this.setSize(new Dimension(224, 628));
  89.  
  90. escala.setBounds(new Rectangle(10, 515, 115, 25));
  91.  
  92. /*RadioButtons */
  93. radioWalle.addActionListener(new ActionListener() {
  94. public void actionPerformed(ActionEvent e) {
  95. rdbSelected_actionPerformed(e);
  96. }
  97. });
  98.  
  99. radioCuerpo.addActionListener(new ActionListener() {
  100. public void actionPerformed(ActionEvent e) {
  101. rdbSelected_actionPerformed(e);
  102. }
  103. });
  104.  
  105. //radioCabeza.addActionListener(new ActionListener() {
  106. // public void actionPerformed(ActionEvent e) {
  107. // rdbSelected_actionPerformed(e);
  108. // }
  109. //});
  110.  
  111. radioBrazoIzquierdo.addActionListener(new ActionListener() {
  112. public void actionPerformed(ActionEvent e) {
  113. rdbSelected_actionPerformed(e);
  114. }
  115. });
  116.  
  117. radioCodoIzquierdo.addActionListener(new ActionListener() {
  118. public void actionPerformed(ActionEvent e) {
  119. rdbSelected_actionPerformed(e);
  120. }
  121. });
  122.  
  123. radioManoIzquierda.addActionListener(new ActionListener() {
  124. public void actionPerformed(ActionEvent e) {
  125. rdbSelected_actionPerformed(e);
  126. }
  127. });
  128.  
  129. radioBrazoDerecho.addActionListener(new ActionListener() {
  130. public void actionPerformed(ActionEvent e) {
  131. rdbSelected_actionPerformed(e);
  132. }
  133. });
  134.  
  135. radioCodoDerecho.addActionListener(new ActionListener() {
  136. public void actionPerformed(ActionEvent e) {
  137. rdbSelected_actionPerformed(e);
  138. }
  139. });
  140.  
  141. radioManoDerecho.addActionListener(new ActionListener() {
  142. public void actionPerformed(ActionEvent e) {
  143. rdbSelected_actionPerformed(e);
  144. }
  145. });
  146.  
  147. radioCintura.addActionListener(new ActionListener() {
  148. public void actionPerformed(ActionEvent e) {
  149. rdbSelected_actionPerformed(e);
  150. }
  151. });
  152.  
  153. radioPiernaIzquierda.addActionListener(new ActionListener() {
  154. public void actionPerformed(ActionEvent e) {
  155. rdbSelected_actionPerformed(e);
  156. }
  157. });
  158.  
  159. radioPieIzquierdo.addActionListener(new ActionListener() {
  160. public void actionPerformed(ActionEvent e) {
  161. rdbSelected_actionPerformed(e);
  162. }
  163. });
  164.  
  165. radioPiernaDerecha.addActionListener(new ActionListener() {
  166. public void actionPerformed(ActionEvent e) {
  167. rdbSelected_actionPerformed(e);
  168. }
  169. });
  170.  
  171. radioPieDerecho.addActionListener(new ActionListener() {
  172. public void actionPerformed(ActionEvent e) {
  173. rdbSelected_actionPerformed(e);
  174. }
  175. });
  176. /*Slider*/
  177. sliderEscala.setBounds(new Rectangle(10, 540, 200, 16));
  178. sliderEscala.addChangeListener(new ChangeListener() {
  179. public void stateChanged(ChangeEvent e) {
  180. sldEscala_ancestorMoved(e);
  181. }
  182. });
  183.  
  184. sliderX.addChangeListener(new ChangeListener() {
  185. public void stateChanged(ChangeEvent e) {
  186. SliderMoveX(e);
  187. }
  188. });
  189.  
  190. sliderY.addChangeListener(new ChangeListener() {
  191. public void stateChanged(ChangeEvent e) {
  192. SliderMoveY(e);
  193. }
  194. });
  195. sliderZ.addChangeListener(new ChangeListener() {
  196. public void stateChanged(ChangeEvent e) {
  197. SliderMoveZ(e);
  198. }
  199. });
  200.  
  201. textArea.setText("Rotation: Drag with left button\n");
  202. textArea.append("Translation: Drag with right button\n");
  203. textArea.append("Zoom: Hold Alt key and drag with left button");
  204. textArea.setEditable(false);
  205.  
  206. JScrollPane scroll = new JScrollPane(textArea);
  207. // scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
  208.  
  209. this.setLayout(new BorderLayout());
  210. panelPrincipal = new JPanel();
  211. panelPrincipal.setLayout(new GridLayout(30,1));
  212. panelPrincipal.setBackground(Color.gray);
  213. panelPrincipal.setForeground(colorFondoHerramientas);
  214. panelPrincipal.add(rotacionX);
  215. panelPrincipal.add(sliderX);
  216. panelPrincipal.add(rotacionY);
  217. panelPrincipal.add(sliderY);
  218. panelPrincipal.add(rotacionZ);
  219. panelPrincipal.add(sliderZ);
  220. panelPrincipal.add(escala);
  221. panelPrincipal.add(sliderEscala);
  222. panelPrincipal.add(new JLabel("Todo el cuerpo"));
  223. panelPrincipal.add(radioWalle);
  224. panelPrincipal.add(cuerpoP);
  225. panelPrincipal.add(radioCuerpo);
  226. //panelPrincipal.add(radioCabeza);
  227. panelPrincipal.add(radioCintura);
  228. panelPrincipal.add(labelManoIz);
  229. panelPrincipal.add(radioBrazoIzquierdo);
  230. panelPrincipal.add(radioCodoIzquierdo);
  231. panelPrincipal.add(radioManoIzquierda);
  232. panelPrincipal.add(labelManoDr);
  233. panelPrincipal.add(radioBrazoDerecho);
  234. panelPrincipal.add(radioCodoDerecho);
  235. panelPrincipal.add(radioManoDerecho);
  236. panelPrincipal.add(labelPieIz);
  237. panelPrincipal.add(radioPiernaIzquierda);
  238. panelPrincipal.add(radioPieIzquierdo);
  239. panelPrincipal.add(labelPieDr);
  240. panelPrincipal.add(radioPiernaDerecha);
  241. panelPrincipal.add(radioPieDerecho);
  242. panelPrincipal.setBorder(titledBorder);
  243.  
  244. this.add(panelPrincipal, BorderLayout.WEST);
  245.  
  246.  
  247. }
  248.  
  249. private void sldEscala_ancestorMoved(ChangeEvent e) {
  250. walle.setEscala((double)sliderEscala.getValue() / 100);
  251. }
  252.  
  253. private void SliderMoveX(ChangeEvent e) {
  254. walle.setValoresSlider(sliderX.getValue(), sliderY.getValue(), sliderZ.getValue());
  255. }
  256.  
  257. private void SliderMoveY(ChangeEvent e) {
  258. walle.setValoresSlider(sliderX.getValue(), sliderY.getValue(), sliderZ.getValue());
  259. }
  260.  
  261. private void SliderMoveZ(ChangeEvent e) {
  262. walle.setValoresSlider(sliderX.getValue(), sliderY.getValue(), sliderZ.getValue());
  263. }
  264.  
  265.  
  266. private void rdbSelected_actionPerformed(ActionEvent e) {
  267. if (radioWalle.isSelected()) {
  268. walle.setExtremidad(walle.WALLE);
  269. this.delimitaSlider(sliderX,50,-50);
  270. this.delimitaSlider(sliderY,160,-160);
  271. this.delimitaSlider(sliderZ,27,-27);
  272. }else if (radioCuerpo.isSelected()) {
  273. walle.setExtremidad(walle.CUERPO);
  274. this.delimitaSlider(sliderX,0,0);
  275. this.delimitaSlider(sliderY,160,-160);
  276. this.delimitaSlider(sliderZ,17,-17);
  277. // }else if (radioCabeza.isSelected()) {
  278. // walle.setExtremidad(walle.CABEZA);
  279. // this.delimitaSlider(sliderX,40,-40);
  280. // this.delimitaSlider(sliderY,40,-40);
  281. this.delimitaSlider(sliderZ,40,-40);
  282. } else if (radioBrazoIzquierdo.isSelected()) {
  283. walle.setExtremidad(walle.BRAZO_IZQUIERDO);
  284. this.delimitaSlider(sliderX,0,-60);
  285. this.delimitaSlider(sliderY,8,-8);
  286. this.delimitaSlider(sliderZ,160,-40);
  287. } else if (radioCintura.isSelected()) {
  288. walle.setExtremidad(walle.CINTURA);
  289. this.delimitaSlider(sliderX,20,-20);
  290. this.delimitaSlider(sliderY,50,-50);
  291. this.delimitaSlider(sliderZ,15,-15);
  292. } else if (radioCodoIzquierdo.isSelected()) {
  293. walle.setExtremidad(walle.CODO_IZQUIERDO);
  294. this.delimitaSlider(sliderX,0,0);
  295. this.delimitaSlider(sliderY,20,-60);
  296. this.delimitaSlider(sliderZ,135,-5);
  297. } else if (radioManoIzquierda.isSelected()) {
  298. walle.setExtremidad(walle.MANO_IZQUIERDA);
  299. this.delimitaSlider(sliderX,40,-40);
  300. this.delimitaSlider(sliderY,60,-60);
  301. this.delimitaSlider(sliderZ,135,-5);
  302. } else if (radioBrazoDerecho.isSelected()) {
  303. walle.setExtremidad(walle.BRAZO_DERECHO);
  304. this.delimitaSlider(sliderX,60,0);
  305. this.delimitaSlider(sliderY,8,-8);
  306. this.delimitaSlider(sliderZ,160,-40);
  307. } else if (radioCodoDerecho.isSelected()) {
  308. walle.setExtremidad(walle.CODO_DERECHO);
  309. this.delimitaSlider(sliderX,0,0);
  310. this.delimitaSlider(sliderY,20,-60);
  311. this.delimitaSlider(sliderZ,135,-5);
  312. } else if (radioManoDerecho.isSelected()) {
  313. walle.setExtremidad(walle.MANO_DERECHO);
  314. this.delimitaSlider(sliderX,40,-40);
  315. this.delimitaSlider(sliderY,60,-60);
  316. this.delimitaSlider(sliderZ,135,-5);
  317. } else if (radioPiernaIzquierda.isSelected()) {
  318. walle.setExtremidad(walle.PIERNA_IZQUIERDA);
  319. this.delimitaSlider(sliderX,30,-30);
  320. this.delimitaSlider(sliderY,40,-40);
  321. this.delimitaSlider(sliderZ,75,-5);
  322. } else if (radioPieIzquierdo.isSelected()) {
  323. walle.setExtremidad(walle.PIE_IZQUIERDO);
  324. this.delimitaSlider(sliderX,0,-0);
  325. this.delimitaSlider(sliderY,25,-25);
  326. this.delimitaSlider(sliderZ,45,-25);
  327. } else if (radioPiernaDerecha.isSelected()) {
  328. walle.setExtremidad(walle.PIERNA_DERECHA);
  329. this.delimitaSlider(sliderX,30,-30);
  330. this.delimitaSlider(sliderY,40,-40);
  331. this.delimitaSlider(sliderZ,75,-5);
  332. } else if (radioPieDerecho.isSelected()) {
  333. walle.setExtremidad(walle.PIE_DERECHO);
  334. this.delimitaSlider(sliderX,0,-0);
  335. this.delimitaSlider(sliderY,25,-25);
  336. this.delimitaSlider(sliderZ,45,-25);
  337. }
  338. }
  339.  
  340.  
  341. private void initComponentes(){
  342.  
  343. // this.radioButtons.add(radioCabeza);
  344. this.radioButtons.add(radioWalle);
  345. this.radioButtons.add(radioCuerpo);
  346. this.radioButtons.add(radioBrazoIzquierdo);
  347. this.radioButtons.add(radioCodoIzquierdo);
  348. this.radioButtons.add(radioManoIzquierda);
  349. this.radioButtons.add(radioBrazoDerecho);
  350. this.radioButtons.add(radioCodoDerecho);
  351. this.radioButtons.add(radioManoDerecho);
  352. this.radioButtons.add(radioPiernaIzquierda);
  353. this.radioButtons.add(radioPieIzquierdo);
  354. this.radioButtons.add(radioPiernaDerecha);
  355. this.radioButtons.add(radioPieDerecho);
  356. this.radioButtons.add(radioCintura);
  357. }
  358.  
  359. public void inicializaSlider()
  360. {
  361. this.delimitaSlider(sliderX,60,60);
  362. this.delimitaSlider(sliderY,160,-160);
  363. this.delimitaSlider(sliderZ,27,-27);
  364. }
  365.  
  366. public void delimitaSlider(JSlider slider,int gradoMax,int gradoMin){
  367. slider.setValue(0);
  368. slider.setMaximum(gradoMax);
  369. slider.setMinimum(gradoMin);
  370. }
  371. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement