gpt4 book ai didi

java - 如何在代号一的路径上正确书写文本

转载 作者:行者123 更新时间:2023-12-01 12:37:07 25 4
gpt4 key购买 nike

我想在具有代号一的路径上写入文本,文本是街道名称以及 map 中的更多内容。整个工程实在是太大了,根本无法贴上去。我写了另一个例子来说明我的问题。我在图形上绘制一个矩形,并在其中绘制文本,在绘制之前我旋转图形。但是当你给出一点大的θ来旋转整个文本和矩形时,就会有距离(文本不是在矩形中绘制的)。这是什么问题?

代码:

public class MyApplication {

private Form current;
Form frm;

public void init(Object context) {
// Pro users - uncomment this code to get crash reports sent to you automatically
/*Display.getInstance().addEdtErrorHandler(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
evt.consume();
Log.p("Exception in AppName version " + Display.getInstance().getProperty("AppVersion", "Unknown"));
Log.p("OS " + Display.getInstance().getPlatformName());
Log.p("Error " + evt.getSource());
Log.p("Current Form " + Display.getInstance().getCurrent().getName());
Log.e((Throwable)evt.getSource());
Log.sendLog();
}
});*/
}

public void start() {
if(current != null){
current.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
current.show();
return;
}
new StateMachine("/theme");
createDraw();

}

public void stop() {
current = Display.getInstance().getCurrent();
}

public void destroy() {
}

private void createDraw() {
frm = new Form("Rect");
frm.setLayout(new LayeredLayout());
frm.setUIID("Form");
Container cont = new Container(new FlowLayout(Component.RIGHT));
cont.setUIID("Container");
Label lbl = new Label();
lbl.setPreferredSize(new Dimension(1280, 720));
lbl.setUIID("Label");
cont.setPreferredSize(new Dimension(1280, 720));
cont.setShouldCalcPreferredSize(true);
Image img = Image.createImage(1280, 720);
Image img2 = Image.createImage(1280, 720);
Graphics g = img.getGraphics();
g.setColor(0xff0000);


Font font = Font.createSystemFont( Font.FACE_MONOSPACE, Font.SIZE_MEDIUM, Font.SIZE_LARGE);
g.setFont(font);

Transform transform = g.getTransform();
g.rotate(1.5f, 100, 100);
g.drawRect(100, 100, 200, 22);
g.drawLine(100, 111, 300, 111);
g.setColor(0x111111);
g.drawString("HHHHHHHHHHHHHHHHHH", 100, 100);
g.setTransform(transform);

img2.getGraphics().drawImage(img, 0, 0);
lbl.setIcon(img2);
frm.addComponent(lbl);

frm.show();
}
}

如果旋转1.5

g.rotate(1.5f, 100, 100);

enter image description here

如果以 .3 旋转

g.rotate(.3f, 100, 100);

enter image description here

提前致谢。

最佳答案

看看你的代码,我认为你有一些计算错误,例如只需在 iPhone3gs 皮肤上的模拟器中检查一下,这几乎可以工作:

iPhone 3gs image

然后在 iPad 皮肤上看起来像这样:

iPad simulator

两者都使用完全相同的底层 Codename One 代码。

您似乎使用了两个可变图像,而不是覆盖绘画或使用画家,这也不是一个好的策略。

关于java - 如何在代号一的路径上正确书写文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25483383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com