java - fill color inside triangle by three co-ordinates -
i using point cloud. have 3d points me .
let's : point p(x,y,z), point q(x,y,z), point r(x,y,z) assuming points triangle pqr proceed further .
triangle :
.
how can possible fill area inside points plotted , triangle filled colour.
like :
.
my study might have helped :
edit :
some way success :
public void make_polygon(float[] points_x,float[] points_y,float[] points_z) { material mspherematerial_z = new material(); //mspherematerial_z.setcolor(color.blue); bitmap p_z_bitty = gettrianglebitmap(bitmapfactory.decoderesource(mcontext.getresources(),r.drawable.label_bg_sm),5,points_x,points_y,points_z); texture t = new texture("text",p_z_bitty); try { mspherematerial_z.addtexture(t); } catch(exception e) { e.printstacktrace(); } object3d p_z = new plane(); p_z.setposition(points_x[0],points_y[1],points_z[2]); p_z.setmaterial(mspherematerial_z); p_z.setdoublesided(true); getcurrentscene().addchild(p_z); } public static bitmap gettrianglebitmap(bitmap bitmap, int radius,float[] a,float[] b,float[] c) { bitmap finalbitmap; if (bitmap.getwidth() != radius || bitmap.getheight() != radius) finalbitmap = bitmap.createscaledbitmap(bitmap, radius, radius, false); else finalbitmap = bitmap; bitmap output = bitmap.createbitmap(finalbitmap.getwidth(), finalbitmap.getheight(), bitmap.config.argb_8888); canvas canvas = new canvas(output); paint paint = new paint(); final rect rect = new rect(0, 0, finalbitmap.getwidth(), finalbitmap.getheight()); // point point1_draw = new point(75, 0); // point point2_draw = new point(0, 180); // point point3_draw = new point(180, 180); pointf point1_draw = new pointf(a[0],a[1]); pointf point2_draw = new pointf(b[0], b[1]); pointf point3_draw = new pointf(c[0],c[1] ); path path = new path(); path.moveto(point1_draw.x, point1_draw.y); path.lineto(point2_draw.x, point2_draw.y); path.lineto(point3_draw.x, point3_draw.y); path.lineto(point1_draw.x, point1_draw.y); path.close(); canvas.drawargb(0, 0, 0, 0); paint.setcolor(color.parsecolor("#bab399")); canvas.drawpath(path, paint); paint.setxfermode(new porterduffxfermode(porterduff.mode.src_in)); canvas.drawbitmap(finalbitmap, rect, rect, paint); return output; } can 1 guide me or suggest article android java ?
if more information / code needed , shall provided.
you should able passing vertices triangle rajawali in order draw triangle primitive. way can avoid using canvas or drawing bitmap , simplify rendering.
// p, q, , r triangle vertices , of form {x, y, z}. public void make_triangle(float[] p, float[] q, float[] r) { object3d triangle = new object3d(); // copy 3 points flat array our vertices. float[] vertices = new float[3 * 3]; (int = 0; < 3; i++) { vertices[i] = p[i]; vertices[3 + i] = q[i]; vertices[6 + i] = r[i]; } // set index buffer point @ our 3 vertices , draw 1 triangle. int[] indices = new int[3]; (int = 0; < 3; i++) { indices[i] = i; } // set rendering data. triangle.setdata(vertices, null, null, null, indices, true); // render triangle double sided. triangle.setdoublesided(true); // use blue material. material material = new material(); material.setcolor(color.blue); triangle.setmaterial(material); // add triangle current scene. getcurrentscene().addchild(triangle); } 
Comments
Post a Comment