Toon posts:

[java] tekenen van lijnen dunner als 1 point

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi allemaal,

Probeer nu al dagen een polygon te tekenen met dikte 0.1f
Maar de polygon wordt net zo dik getekend als ik dikte 1.0f
opgeef.

Code :

Graphics2D g;
Polygon p = .....
g.setStroke(new BasicStroke(0.1f,BasicStroke.CAP_SQUARE,BasicStroke.JOIN_MITER));
g.draw(p);

Groeten Wim

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09-09 20:58

Janoz

Moderator Devschuur®

!litemod

Je mag mij wel eens vertellen hoe jij een lijn zou willen tekenen van 0.1 pixel breed :) (en je hoeft geen groeten onder je post te zetten... Zie faq)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • FireSNAKE
  • Registratie: Januari 2001
  • Laatst online: 30-08 19:00
:? :? :? :? 0,1 pixel eh |:(

Verwijderd

Op dinsdag 19 maart 2002 22:16 schreef wimper het volgende:
Hoi allemaal,

Probeer nu al dagen een polygon te tekenen met dikte 0.1f
Maar de polygon wordt net zo dik getekend als ik dikte 1.0f
opgeef.

Code :

Graphics2D g;
Polygon p = .....
g.setStroke(new BasicStroke(0.1f,BasicStroke.CAP_SQUARE,BasicStroke.JOIN_MITER));
g.draw(p);

Groeten Wim
Ik vroeg me eigenlijk af waarom je dit wilt proberen. Ik zie dat je nou niet bepaald basic taal gebruikt en verwacht eigenlijk dat je zelf ook wel weet dat een beeldscherm geen subpixels in pixels heeft :)

Dus is dit puur theoretisch of praktijk, zoja praktijk, hoe dacht je dergelijke breedtes te kunnen afbeelden, ik heb nog nooit gehoord van displays met -1 pixel formaten :)

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 11-09 23:14
Met java mag je waarschijnlijk de resolutie van je beeldscherm ook niet aanpassen neem ik aan ;)

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


Verwijderd

Topicstarter
Oke zal het ff uitleggen.

Ben bezig een kozijn teken prog te maken. Nou wil ik op het scherm gewoon 1 pixel dikte hebben maar mijn klant vind dit voor de printer te dik. Tekenprogs hebben zoiets als een hairline stroke (photoshop,flash, etc...)
Nou dacht ik dit moet in java ook mogelijk zijn waarom anders een float als width argument in BasicStroke geven

PS tis trouwens geen pixel dikte die je opgeeft maar een Point dikte (weet niet of dit hetzelfde is)

Uit java doc voor basic stroke:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public BasicStroke(float width,
             int cap,
             int join,
             float miterlimit,
             float[] dash,
             float dash_phase)Constructs a new BasicStroke with the specified attributes.
Parameters:
width - the width of this BasicStroke. The width must be greater than or equal to 0.0f. If width is set to 0.0f, the stroke is rendered as the thinnest possible line for the target device and the antialias hint setting.
cap - the decoration of the ends of a BasicStroke
join - the decoration applied where path segments meet
miterlimit - the limit to trim the miter join. The miterlimit must be greater than or equal to 1.0f.
dash - the array representing the dashing pattern
dash_phase - the offset to start the dashing pattern
Throws:
IllegalArgumentException - if width is negative
IllegalArgumentException - if cap is not either CAP_BUTT, CAP_ROUND or CAP_SQUARE
IllegalArgumentException - if miterlimit is less than 1 and join is JOIN_MITER
IllegalArgumentException - if join is not either JOIN_ROUND, JOIN_BEVEL, or JOIN_MITER
IllegalArgumentException - if dash_phase is negative and dash is not null
IllegalArgumentException - if the length of dash is zero
IllegalArgumentException - if dash lengths are all zero

Geen Groeten

Wim

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

He sjaak :)

Heb je al gekeken naar anti aliasing?

en als je je code tussen [ code ] bladiabla [ /code ] tags dan ziet het er iets beter uit :)

dan krijg je:
code:
1
2
3
4
5
6
7
class Roha{
   public void zeur(){
   }
  
   public void enNogEenKeerZeuren(){
   }
}

:+

Verwijderd

Topicstarter
Ja Peter het staat aan maar maakt het printen nog ku**er (ziet er vlekkerig uit)

oke, zal het onthouden

bedankt voor de tips Peter

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Anders moet je even op het forum van sun een vraag stellen. Meestal krijg je een lading nutteloze antwoorden, maar zo nu en dan best wel aardige.

en deze site is ook wel aardig:
http://www.wasigh.com/javahova :)

Verwijderd

Een gigantisch Image object aanmaken, daarop teken, verkleind naar het beeldscherm en of printer sturen, dat heeft geen effect op het beeldscherm, maar op de printer wel...

Verwijderd

Topicstarter
Aan markvleth,

werkt niet, maak nl al een image, schaal die naar beneden maar lijnen zijn nog steeds te dik. Maar bedankt voor de tip.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Ik neem aan dat je ook al hebt gekeken naar een andere print api?(antwoord niet nodig :) )

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 11-09 18:14
offtopic:
Dunner dan.
Pagina: 1