Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #35265

Re: Making a cross-hair visible

Path csiph.com!news.swapon.de!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From Cecil Westerhof <Cecil@decebal.nl>
Newsgroups comp.lang.java.programmer
Subject Re: Making a cross-hair visible
Date Fri, 12 Aug 2016 00:20:15 +0200
Organization Decebal Computing
Lines 57
Message-ID <871t1vlzhc.fsf@Equus.decebal.nl> (permalink)
References <87a8gjm2it.fsf@Equus.decebal.nl> <57aceffb$0$4222$e4fe514c@newszilla.xs4all.nl>
Mime-Version 1.0
Content-Type text/plain
Injection-Info mx02.eternal-september.org; posting-host="12baf5125b19322b899c79c2e3878015"; logging-data="10668"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18Og9Ls5WXktoe1PjOfM02DwumKqUiPOo4="
User-Agent Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux)
X-Homepage http://www.decebal.nl/
Cancel-Lock sha1:pG/kyMpvueYwK53E/gG4xt+B38g= sha1:s9R8U+5h9qKcDWszX8r3HtoYExI=
Xref csiph.com comp.lang.java.programmer:35265

Show key headers only | View raw


On Thursday 11 Aug 2016 23:36 CEST, silvio@internet.com wrote:

> On 08/11/2016 11:14 PM, Cecil Westerhof wrote:
>> I am dabbling with Swing to do some GUI stuff. This is relatively
>> new for me. At the moment I draw a rectangle for cropping an image.
>> The position is selected by clicking on the centre from where I
>> think the rectangle should be placed. This can be a little of, so I
>> have to fine-tune it. For this I draw a little cross in the centre.
>> Problem is that I paint it in black and when the centre is black, I
>> will not see it. And with every colour I choose I can have this
>> problem. Is there a smart way to make the cross always visible?
>>
>> I was thinking about a timer function which would alternate the
>> colour of the cross between black and white, but was wondering if
>> there is a better way.
>>
>> At the moment my code is:
>> protected void paintComponent(Graphics g) {
>> Graphics2D g2       = (Graphics2D) g;
>> int        centerX  = x + cropWidth  / 2;
>> int        centerY  = y + cropHeight / 2;
>>
>> super.paintComponent(g); g2.setStroke(stroke);
>> g.setColor(rectColor); g.drawImage(image, 0, 0, imageWidth,
>> imageHeight, null); g.drawRect(x, y, cropWidth, cropHeight);
>> g.drawLine(centerX - crossLength, centerY, centerX + crossLength,
>> centerY); g.drawLine(centerX, centerY - crossLength, centerX,
>> centerY + crossLength); }
>>
>
> Either do a black crosshair with a white border or draw in XOR-mode.

Why did I do not think about that. :'-(

I had already been experimenting and I got a good result with:
    new Color(0, 255, 0)
as the cross colour. But that this colour is not significantly used in
my pictures, does not mean it is the same in others.

I changed the last part to (it has to be cleaned up of-course):
        g2.setStroke(new BasicStroke(4.0f));
        g.setColor(new Color(255, 255, 255));
        g.drawLine(centerX - crossLength, centerY, centerX + crossLength, centerY);
        g.drawLine(centerX, centerY - crossLength, centerX, centerY + crossLength);
        g2.setStroke(new BasicStroke(2.0f));
        g.setColor(new Color(0, 0, 0));
        g.drawLine(centerX - crossLength, centerY, centerX + crossLength, centerY);
        g.drawLine(centerX, centerY - crossLength, centerX, centerY + crossLength);

And that works great on the blackbird where I did not see the cross earlier on.

Maybe I should do the same for the rectangle itself.

-- 
Cecil Westerhof
Senior Software Engineer
LinkedIn: http://www.linkedin.com/in/cecilwesterhof

Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Making a cross-hair visible Cecil Westerhof <Cecil@decebal.nl> - 2016-08-11 23:14 +0200
  Re: Making a cross-hair visible Arne Vajhøj <arne@vajhoej.dk> - 2016-08-11 17:34 -0400
  Re: Making a cross-hair visible Silvio <silvio@internet.com> - 2016-08-11 23:36 +0200
    Re: Making a cross-hair visible Cecil Westerhof <Cecil@decebal.nl> - 2016-08-12 00:20 +0200
  Re: Making a cross-hair visible Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-08-11 17:40 -0400

csiph-web