All Projects → FabianTerhorst → Isometric

FabianTerhorst / Isometric

Licence: apache-2.0
Isometric drawing library for Android

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Isometric

Laravel Guided Image
Simplified and ready image manipulation for Laravel through intervention image.
Stars: ✭ 32 (-97.1%)
Mutual labels:  view
Jprogressview
一个灵活的进度条,支持图形:圆形、圆角矩形、矩形等等,陆续会添加更多的图形,如果对你有帮助,请在右上角 star 一下,感谢
Stars: ✭ 46 (-95.84%)
Mutual labels:  view
Tap water
【声明:未发布前,勿使用,勿star,预计2020年11月底发布】Flutter tab_bar组件,支持中间带加号按钮的TabBar,支持Lottie动画。iTeaTime(技术清谈)团队出品。Highly customizable tabBar and tabBarController for Flutter
Stars: ✭ 52 (-95.29%)
Mutual labels:  view
Readablebottombar
Yet another material bottom bar library for Android
Stars: ✭ 977 (-11.58%)
Mutual labels:  view
Tangramkit
TangramKit is a powerful iOS UI framework implemented by Swift. It integrates the functions with Android layout,iOS AutoLayout,SizeClass, HTML CSS float and flexbox and bootstrap. So you can use LinearLayout,RelativeLayout,FrameLayout,TableLayout,FlowLayout,FloatLayout,LayoutSizeClass to build your App 自动布局 UIView UITableView UICollectionView
Stars: ✭ 984 (-10.95%)
Mutual labels:  view
Counterview
Android View that have a value that can be incremented and decremented by one
Stars: ✭ 46 (-95.84%)
Mutual labels:  view
Fillingbutton
🔥Replace typical onLongClickListener with this library!
Stars: ✭ 31 (-97.19%)
Mutual labels:  view
Toothyprogress
A polyline determinated ProgressBar written in Kotlin
Stars: ✭ 56 (-94.93%)
Mutual labels:  view
Viewtooltip
A fluent tooltip for Android
Stars: ✭ 1,029 (-6.88%)
Mutual labels:  view
Gomponents
Declarative view components in Go, that can render to HTML5.
Stars: ✭ 49 (-95.57%)
Mutual labels:  view
Egg View
Stars: ✭ 35 (-96.83%)
Mutual labels:  view
Codegen
A model-view based code generator written in Java
Stars: ✭ 36 (-96.74%)
Mutual labels:  view
Lovelydialog
This library is a set of simple wrapper classes that are aimed to help you easily create fancy material dialogs.
Stars: ✭ 1,043 (-5.61%)
Mutual labels:  view
Markdownview
Android library to display markdown text.
Stars: ✭ 970 (-12.22%)
Mutual labels:  view
Mindo
Generate mind maps easily in your android app.
Stars: ✭ 52 (-95.29%)
Mutual labels:  view
Instories
iOS app for viewing Instagram stories anonymously.
Stars: ✭ 31 (-97.19%)
Mutual labels:  view
Speedview
Dynamic Speedometer and Gauge for Android. amazing, powerful, and multi shape ⚡️
Stars: ✭ 1,035 (-6.33%)
Mutual labels:  view
Checkview
An animated toggling Plus/Check button for Android
Stars: ✭ 56 (-94.93%)
Mutual labels:  view
Android Toy
不积跬步 无以至千里
Stars: ✭ 54 (-95.11%)
Mutual labels:  view
Fun
A library for android to animate expanding and collapsing views.
Stars: ✭ 48 (-95.66%)
Mutual labels:  view

Isometric

Isometric drawing library for Android

Drawing a simple cube

isometricView.add(
	new Prism(
		new Point(/* x */ 0, /* y */ 0, /* z */ 0), 
		/* width */ 1, /* length */ 1, /* height */ 1
	), 
	new Color(33, 150, 243)
);

Image

Drawing multiple Shapes

There are 3 basic components: points, paths and shapes. A shape needs an origin point and 3 measurements for the x, y and z axes. The default Prism constructor is setting all measurements to 1.

isometricView.add(new Prism(new Point(0, 0, 0)), new Color(33, 150, 243));
isometricView.add(new Prism(new Point(-1, 1, 0), 1, 2, 1), new Color(33, 150, 243));
isometricView.add(new Prism(new Point(1, -1, 0), 2, 1, 1), new Color(33, 150, 243));

Image

Drawing multiple Paths

Paths are two dimensional. You can draw and color paths the same as shapes.

isometricView.add(new Prism(Point.ORIGIN, 3, 3, 1), new Color(50, 60, 160));
isometricView.add(new Path(new Point[]{
    new Point(1, 1, 1),
    new Point(2, 1, 1),
    new Point(2, 2, 1),
    new Point(1, 2, 1)
}), new Color(50, 160, 60));

Image

The grid

Here you can see how the grid looks like. The blue grid is the xy-plane. The z-line is the z-axis.

Image

Supports complex structures

Image

Include in your project

Using JCenter

compile 'io.fabianterhorst:Isometric:0.0.9'

Available Shapes

Cylinder, Knot, Octahedron, Prism, Pyramid and Stairs

Translate

Traslate is translating an point, path or shape to the given x, y and z distance. Translate is returning a new point, path or shape.

Prism prism = new Prism(new Point(0, 0, 0));
isometricView.add(prism, new Color(33, 150, 243));
isometricView.add(prism.translate(0, 0, 1.1), new Color(33, 150, 243));

Image

Scale

Scale is scaling an point, path or shape with the given x, y and z scaling factors. Scale is returning a new point, path or shape.

Color blue = new Color(50, 60, 160);
Color red = new Color(160, 60, 50);
Prism cube = new Prism(Point.ORIGIN);
isometricView.add(cube.scale(Point.ORIGIN, 3.0, 3.0, 0.5), red);
isometricView.add(cube
	.scale(Point.ORIGIN, 3.0, 3.0, 0.5)
	.translate(0, 0, 0.6), blue);

Image

RotateZ

RotateZ is rotating an point, path or shape with the given angle in radians on the xy-plane (where an angle of 0 runs along the position x-axis). RotateZ is returning a new point, path or shape.

Color blue = new Color(50, 60, 160);
Color red = new Color(160, 60, 50);
Prism cube = new Prism(Point.ORIGIN, 3, 3, 1);
isometricView.add(cube, red);
isometricView.add(cube
	/* (1.5, 1.5) is the center of the prism */
	.rotateZ(new Point(1.5, 1.5, 0), Math.PI / 12)
	.translate(0, 0, 1.1), blue);

Image

Shapes from Paths

The method Shape.extrude allows you to create a 3D model by popping out a 2D path along the z-axis.

Color blue = new Color(50, 60, 160);
Color red = new Color(160, 60, 50);
isometricView.add(new Prism(Point.ORIGIN, 3, 3, 1), blue);
isometricView.add(Shape.extrude(new Path(new Point[]{
	new Point(1, 1, 1),
	new Point(2, 1, 1),
	new Point(2, 3, 1)
}), 0.3), red);

Image

Available Shapes

Cylinder

Image

Knot

Image

Octahedron

Image

Prism

Image

Pyramid

Image

Stairs

Image

Developed By

Contributors

License

Copyright 2017 Fabian Terhorst

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].