Вопрос состоит в том, как рисовать широкие полосы от круга 1 до круга 2 в любых координатах(иными словами под углом)
Я рисую вот такую полосу, от круга 1 до круга 2, сейчас я могу рисовать только по прямой
где getX и getY расположение координаты круга 1(на котором число), x2,y2 координаты круга 2
Белые полосы и фиолетовую полосы рисую растягивая квадрат 1х1 пиксель(piece)
batchColor.begin();
batchColor.setColor(colorR,colorG,colorB,colorA);
batchColor.draw(piece,getX(),getY()-getRadius(),x2-getRadius()-getRadius(),y2);
batchColor.setColor(Color.WHITE);
batchColor.draw(piece,getX(),getY()+getRadius(),x2-getRadius()-getRadius(),-6);
batchColor.draw(piece,getX(),getY()-getRadius(),x2-getRadius()-getRadius(),6);
batchColor.end();
В Java это можно сделать с помощью Polygon.
Вот пример:
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Test extends Frame {
public Test() {
super("Java 2D Example01");
setSize(400, 300);
setVisible(true);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
}
);
}
public static void main(String[] args) {
new Test();
}
public void paint(Graphics g) {
Polygon poligon = new Polygon();
poligon.addPoint(150, 150);
poligon.addPoint(185, 120);
poligon.addPoint(250, 200);
poligon.addPoint(220, 230);
poligon.addPoint(150, 150);
((Graphics2D) g).fill(poligon);
}
}
Вот пример для libgdx:
package com.gamename;
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.graphics.Pixmap;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.*;
public class Game implements ApplicationListener {
private PolygonSprite poly;
private PolygonSpriteBatch polyBatch;
public void create () {
PolygonRegion polyReg = new PolygonRegion(new TextureRegion(createTexture()),
new float[] {
150, 150,
185, 120,
250, 200,
220, 230,
150, 150
});
poly = new PolygonSprite(polyReg);
poly.setOrigin(100, 100);
polyBatch = new PolygonSpriteBatch();
}
public void render () {
polyBatch.begin();
poly.draw(polyBatch);
polyBatch.end();
}
public void resize (int width, int height) {}
public void pause () {}
public void resume () {}
public void dispose () {}
private Texture createTexture() {
Pixmap pix = new Pixmap(1, 1, Pixmap.Format.RGBA8888);
pix.setColor(0xDEADBEFF);
pix.fill();
return new Texture(pix);
}
}
Класс для вызова с десктопа:
package com.gamename;
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
public class DesktopGame {
public static void main (String[] args) {
new LwjglApplication(new Game(), "Game", 480, 320, false);
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Периодически зависает X-серверКаким образом можно проверить завис он или работает? Проверку необходимо реализовать на python, но и не откажусь...
Всем приветНа работе поставил IntellijIDEA, maven, jdk
Как вывести дробную часть double в Java? Что бы число d было равно 17890 а не 178
Построил гистограмму используя библиотеку jfreechart, сейчас возникла необходимость наложить на нее кривуюНикак не могу сообразить, каким образом...