Skip to content

caiiiycuk/zcomposite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

zcomposite

Emulates z-buffer in java Graphics 2D.

Without ZComposite With ZComposite

##How to use

package ru.atomation.composite;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;
import javax.swing.JPanel;

import ru.atomation.composite.misc.ZValueResolverFactory;

/**
 * Shows how to use zbuffer composite
 * @author caiiiycuk
 *
 */
public class ZCompositeSnippet {

        /**
         * @param args
         */
        public static void main(String[] args) {
                final JFrame frame = new JFrame("ZBuffer composite");
                
                JPanel bufferdPanel = new JPanel() {
                        private static final long serialVersionUID = 1959924209249841311L;

                        protected void paintComponent(Graphics g) {
                                int[] xpoints;
                                int[] ypoints;
                                
                                Graphics2D g2d = (Graphics2D) g;
                                ZComposite composite = new ZComposite(640, 480);
                                composite.clearBufferBit();
                                composite.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
                                g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
                                g2d.setComposite(composite);
                                
                                
                                xpoints = new int[] {
                                        0, 100, 100, 0
                                };
                                
                                ypoints = new int[] {
                                        0, 50, 100, 50
                                };
                                
                                composite.setValueResolver(ZValueResolverFactory.createPolygonResolver(xpoints, ypoints, 100, 0, 0));
                                
                                g2d.setColor(Color.red);
                                g2d.fillPolygon(xpoints, ypoints, xpoints.length);
                                g2d.setColor(Color.yellow);
                                g2d.drawPolygon(xpoints, ypoints, xpoints.length);
                                
                                
                                xpoints = new int[] {
                                        0, 100, 100, 0
                                };
                                        
                                ypoints = new int[] {
                                        50, 0, 50, 100
                                };
                                
                                composite.setValueResolver(ZValueResolverFactory.createPolygonResolver(xpoints, ypoints, 0, 100, 100));

                                g2d.setColor(Color.yellow);
                                g2d.fillPolygon(xpoints, ypoints, xpoints.length);
                                g2d.setColor(Color.red);
                                g2d.drawPolygon(xpoints, ypoints, xpoints.length);
                        }
                };
                
                frame.getContentPane().add(bufferdPanel);
                
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setSize(640, 480);
                frame.setLocationRelativeTo(null);
                
                frame.getContentPane().addMouseMotionListener(new MouseAdapter() {
                        public void mouseMoved(MouseEvent e) {
                                frame.setTitle(e.getX()+", " +e.getY());
                        }
                });
                
                frame.setVisible(true);
        }

}

About

Emulates z-buffer in java Graphics 2D

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages