I just need a little push. I have a chart with a series as a tpointseries. I am having difficultly in figuring out how to draw the series as a polygon/rectangle.
When I mean polygon or rectangular, you have 4 corners (bottom_left X/Y, top_left X/Y, top_right X/Y and bottom_right XY) which create 4 lines and fill the area between those 4 corners.
Thanks in advanced.
1) Create series of TChartShape type with rectangle style and add shape with needed coordinates
2) Draw rectangle on chart canvas in OnAfterDraw event handler
Related
I don't know which numbers do what in the coordinates example here. I imagine they mean things like place the top left corner at this position and the bottom right corner at this position, but I don't know which number corresponds to which position.
I've been trying to fool around with the numbers to get a small green rectangle but keep getting weird results like the following, and don't know which numbers need to be what is order to make the rectangle symmetrical and at the bottom
This is what the rectangle should look like
The height of the rectangle is 50, the height of the screen is 1000, and the width of the screen is 1700.
Here's my draw function
function love.draw()
love.graphics.setColor(0.28, 0.63, 0.05) -- set the drawing color to green for the ground
love.graphics.polygon("fill", objects.ground.body:getWorldPoints(objects.ground.shape:getPoints())) -- draw a "filled in" polygon using the ground's coordinates
-- These are the grounds coordinates. -11650 950 13350 950 13350 1000 -11650 1000
love.graphics.setColor(0.76, 0.18, 0.05) --set the drawing color to red for the ball
love.graphics.circle("fill", objects.ball.body:getX(), objects.ball.body:getY(), objects.ball.shape:getRadius())
love.graphics.setColor(0.20, 0.20, 0.20) -- set the drawing color to grey for the blocks
love.graphics.polygon("fill", objects.block1.body:getWorldPoints(objects.block1.shape:getPoints()))
love.graphics.polygon("fill", objects.block2.body:getWorldPoints(objects.block2.shape:getPoints()))
print(objects.block1.body:getWorldPoints(objects.block1.shape:getPoints()))
end
As described at https://love2d.org/wiki/love.graphics, Löve's coordinate system has (0, 0) at the upper left corner of the screen. X values increase to the right, Y values increase down.
The polygon function expects the drawing mode as it's first parameter, and the the remaining (variable) parameters are the coordinates of the vertices of the polygon you wish to draw. Since you want to draw a rectangle you need four vertices/eight numbers. You do not have to list the upper left corner of the rectangle first, but that's probably the easiest thing to do.
So in your case, you want something like:
love.graphics.polygon('fill', 0, 950, 0, 1000, 1700, 1000, 1700, 950)
I've not worked with the physics system, so I'm not quite sure how it's coordinate system relates to "screen" coordinates. The values you show in the comment in your code listing seem like they should give a rectangle (although x = -11650 wouldn't be on screen). You might try experimenting without the physics system first.
Also, since the physics system in Löve is just a binding to Box2D, you might want to read its documentation (http://box2d.org/about/). Not really sure what you're trying to do with feeding shape:getPoints into body:getWorldPoints.
Can I rotate a chart? I need x on vertical axis and y on horizontal axis.
Can I change x value to vertical axis and y value to horizontal axis?
Or can I rotate of the component TChart (xy values stay standard and I flip component 90)?
Thank you.
The easiest solution would probably be to use swap your values or add your X values as YValues and add your y values as XValues.
Ie, let's say you have your X values in an array called Xdata and your Y values in an array called Ydata. You could add your values with this:
Series1->AddXY(Ydata, Xdata);
Maybe I can write - i used a line(fast line) chart.
There
[IMG]http://i68.tinypic.com/29atrw5.png[/IMG]
is Classical graph and image if I rotate it. If I change x-y values as You wrote I get wrong image.
y = f(x) so it paint for x=1, x=2, ... but i need paint x = f(y) for y=1, y=2, y=3
I need something as is point chart - connect handly in paint
I'm not sure if it is possible change axis or rotate component teeChart.
I probably use TImage and will paint it into image.
today i find that teechart have a series "horiz line" (https://www.steema.com/files/public/teechart/java/v1/docs/Tutorials/tutorial1.htm).
But licence is expensive for our company (https://www.steema.com/buy). We need only one chart with this axes.
Do you know if can I install only some update into BCB 6?
I want to draw target view like this-
And get touch event of a particular circle.
e.g If user touch between circle 7 then fill black color of circles up to circles 7.
Currently I have two ways to implement this functionality:
1) Take 10 UIImageView and put on each other and touch of an image view change the colors of image view's according to conditions.
2) Take UIView and draw 20 color gradient (10 for black border line and 10 for white spaces) and save frame of each gradient. After that get user's touch area then change color according to that.
I am looking for a better solution.
why not have a single image, and calculate the radius based on the touch point - all you need to know is the centre position.
Instead of radius, what you really need is an index from 0 to 11 for your bands - if they are equal thickness, you can do that in a single calculation - take the integer part of (11 * radius / radiusFull)
If the bulls-eye is a different size, you may need to add some more code.
Either way, you should be able to do it all with a single image - generated on the fly, or simply loaded - and a bit of simple maths.
My chart:
http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/highcharts/demo/3d-scatter-draggable/
beta:
I think that the value "beta" of 3d draggable scatter chart, is at half of xAxis (so at the half of "max-width")..
alpha:
but alpha ? where is the center of rotation for Alpha ?
I ask you this, because i would like to add an image that rotates together the chart, when i rotate the chart.
And to transform the image i must to know many things as Alpha and beta...
Thanks!
The beta/alpha are rotation angles by x / y axis.
Docs:
http://api.highcharts.com/highcharts#chart.options3d.alpha
http://api.highcharts.com/highcharts#chart.options3d.beta
I have one shape
var a = paper.rect(10,10,50,20);
I want to transform this shape into
var b = paper.circle(10,10,20);
Is there any way to transform these inbuilt shapes into one another. I know paths can be transformed anyhow you want them to but can shapes also be transformed?
You can do this if with a little creativity. A rectangle can be a circle if width, height and r (radius) are all the same. Then transforming a rect to a "circle" becomes:
p=Raphael(10, 50, 600, 300);
myrect=p.rect(50,50, 300,150,0).attr({"fill":"cyan"});
myrect.animate({"width":25,"height":25, "r":25}, 3000);
JSfiddle: http://jsfiddle.net/s1pz6Lzc/30/
I don't think that is possible, except if you simply fade out one shape and fade in the other one. The reason for this is that at some point in time during the conversion the shape is neither a rectangle nor a circle, while any single animated shape in SVG has to remain the same kind of shape throughout the animation, I believe.